<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: pcl::tracking::PyramidalKLTTracker&lt; PointInT, IntensityT &gt; 模板类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Doxygen
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public 类型</a> &#124;
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pro-methods">Protected 成员函数</a> &#124;
<a href="#pro-attribs">Protected 属性</a> &#124;
<a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">pcl::tracking::PyramidalKLTTracker&lt; PointInT, IntensityT &gt; 模板类 参考</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="pyramidal__klt_8h_source.html">pyramidal_klt.h</a>&gt;</code></p>
<div class="dynheader">
类 pcl::tracking::PyramidalKLTTracker&lt; PointInT, IntensityT &gt; 继承关系图:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.png" usemap="#pcl::tracking::PyramidalKLTTracker_3C_20PointInT_2C_20IntensityT_20_3E_map" alt=""/>
  <map id="pcl::tracking::PyramidalKLTTracker_3C_20PointInT_2C_20IntensityT_20_3E_map" name="pcl::tracking::PyramidalKLTTracker_3C_20PointInT_2C_20IntensityT_20_3E_map">
<area href="classpcl_1_1tracking_1_1_tracker.html" alt="pcl::tracking::Tracker&lt; PointInT, Eigen::Affine3f &gt;" shape="rect" coords="0,56,339,80"/>
<area href="classpcl_1_1_p_c_l_base.html" alt="pcl::PCLBase&lt; PointInT &gt;" shape="rect" coords="0,0,339,24"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
<tr class="memitem:a01f33b4e4283d8ac2b31a6b16e713939"><td class="memItemLeft" align="right" valign="top"><a id="a01f33b4e4283d8ac2b31a6b16e713939"></a>
typedef <a class="el" href="classpcl_1_1tracking_1_1_tracker.html">pcl::tracking::Tracker</a>&lt; PointInT, Eigen::Affine3f &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>TrackerBase</b></td></tr>
<tr class="separator:a01f33b4e4283d8ac2b31a6b16e713939"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4859763444041846ac22e260a44b1f2"><td class="memItemLeft" align="right" valign="top"><a id="ab4859763444041846ac22e260a44b1f2"></a>
typedef TrackerBase::PointCloudIn&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudIn</b></td></tr>
<tr class="separator:ab4859763444041846ac22e260a44b1f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af84d53549fd170ea3b6b5a9ffd4cd74a"><td class="memItemLeft" align="right" valign="top"><a id="af84d53549fd170ea3b6b5a9ffd4cd74a"></a>
typedef PointCloudIn::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudInPtr</b></td></tr>
<tr class="separator:af84d53549fd170ea3b6b5a9ffd4cd74a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b242fd42bfa53c1806718275251c627"><td class="memItemLeft" align="right" valign="top"><a id="a7b242fd42bfa53c1806718275251c627"></a>
typedef PointCloudIn::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudInConstPtr</b></td></tr>
<tr class="separator:a7b242fd42bfa53c1806718275251c627"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6820d2fa24a70f91bfb2e467da66edcd"><td class="memItemLeft" align="right" valign="top"><a id="a6820d2fa24a70f91bfb2e467da66edcd"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>FloatImage</b></td></tr>
<tr class="separator:a6820d2fa24a70f91bfb2e467da66edcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b2ec5603e65e88556dbcf09a64eb222"><td class="memItemLeft" align="right" valign="top"><a id="a2b2ec5603e65e88556dbcf09a64eb222"></a>
typedef FloatImage::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>FloatImagePtr</b></td></tr>
<tr class="separator:a2b2ec5603e65e88556dbcf09a64eb222"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb9177f930f233524e34232a8b828f28"><td class="memItemLeft" align="right" valign="top"><a id="afb9177f930f233524e34232a8b828f28"></a>
typedef FloatImage::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>FloatImageConstPtr</b></td></tr>
<tr class="separator:afb9177f930f233524e34232a8b828f28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classpcl_1_1tracking_1_1_tracker"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classpcl_1_1tracking_1_1_tracker')"><img src="closed.png" alt="-"/>&#160;Public 类型 继承自 <a class="el" href="classpcl_1_1tracking_1_1_tracker.html">pcl::tracking::Tracker&lt; PointInT, Eigen::Affine3f &gt;</a></td></tr>
<tr class="memitem:a29b4419a8f6ceabe3a1fb0ef205ba9a5 inherit pub_types_classpcl_1_1tracking_1_1_tracker"><td class="memItemLeft" align="right" valign="top"><a id="a29b4419a8f6ceabe3a1fb0ef205ba9a5"></a>
typedef <a class="el" href="classpcl_1_1_p_c_l_base.html">PCLBase</a>&lt; PointInT &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>BaseClass</b></td></tr>
<tr class="separator:a29b4419a8f6ceabe3a1fb0ef205ba9a5 inherit pub_types_classpcl_1_1tracking_1_1_tracker"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0240eaaf0b30a2b416abfa209e1663b7 inherit pub_types_classpcl_1_1tracking_1_1_tracker"><td class="memItemLeft" align="right" valign="top"><a id="a0240eaaf0b30a2b416abfa209e1663b7"></a>
typedef boost::shared_ptr&lt; <a class="el" href="classpcl_1_1tracking_1_1_tracker.html">Tracker</a>&lt; PointInT, Eigen::Affine3f &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Ptr</b></td></tr>
<tr class="separator:a0240eaaf0b30a2b416abfa209e1663b7 inherit pub_types_classpcl_1_1tracking_1_1_tracker"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7cec0de180375d8b94afcec11d8c7c8 inherit pub_types_classpcl_1_1tracking_1_1_tracker"><td class="memItemLeft" align="right" valign="top"><a id="ad7cec0de180375d8b94afcec11d8c7c8"></a>
typedef boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1tracking_1_1_tracker.html">Tracker</a>&lt; PointInT, Eigen::Affine3f &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ConstPtr</b></td></tr>
<tr class="separator:ad7cec0de180375d8b94afcec11d8c7c8 inherit pub_types_classpcl_1_1tracking_1_1_tracker"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90c614246936c0dabccd5798bb5787b3 inherit pub_types_classpcl_1_1tracking_1_1_tracker"><td class="memItemLeft" align="right" valign="top"><a id="a90c614246936c0dabccd5798bb5787b3"></a>
typedef boost::shared_ptr&lt; <a class="el" href="classpcl_1_1search_1_1_search.html">pcl::search::Search</a>&lt; PointInT &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>SearchPtr</b></td></tr>
<tr class="separator:a90c614246936c0dabccd5798bb5787b3 inherit pub_types_classpcl_1_1tracking_1_1_tracker"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae72be70e6aba747feb86791a7dad90ef inherit pub_types_classpcl_1_1tracking_1_1_tracker"><td class="memItemLeft" align="right" valign="top"><a id="ae72be70e6aba747feb86791a7dad90ef"></a>
typedef boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1search_1_1_search.html">pcl::search::Search</a>&lt; PointInT &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>SearchConstPtr</b></td></tr>
<tr class="separator:ae72be70e6aba747feb86791a7dad90ef inherit pub_types_classpcl_1_1tracking_1_1_tracker"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafe1c9e2ea5b1b44cca2d433bf5de02c inherit pub_types_classpcl_1_1tracking_1_1_tracker"><td class="memItemLeft" align="right" valign="top"><a id="aafe1c9e2ea5b1b44cca2d433bf5de02c"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointInT &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudIn</b></td></tr>
<tr class="separator:aafe1c9e2ea5b1b44cca2d433bf5de02c inherit pub_types_classpcl_1_1tracking_1_1_tracker"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac825f797ec3c304b3f3ec442aa1d8c1d inherit pub_types_classpcl_1_1tracking_1_1_tracker"><td class="memItemLeft" align="right" valign="top"><a id="ac825f797ec3c304b3f3ec442aa1d8c1d"></a>
typedef PointCloudIn::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudInPtr</b></td></tr>
<tr class="separator:ac825f797ec3c304b3f3ec442aa1d8c1d inherit pub_types_classpcl_1_1tracking_1_1_tracker"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8ab0ea3a2452dbfc81332e96f6ebdef inherit pub_types_classpcl_1_1tracking_1_1_tracker"><td class="memItemLeft" align="right" valign="top"><a id="ac8ab0ea3a2452dbfc81332e96f6ebdef"></a>
typedef PointCloudIn::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudInConstPtr</b></td></tr>
<tr class="separator:ac8ab0ea3a2452dbfc81332e96f6ebdef inherit pub_types_classpcl_1_1tracking_1_1_tracker"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9657df1445c0f2afaef0be018df9d9a inherit pub_types_classpcl_1_1tracking_1_1_tracker"><td class="memItemLeft" align="right" valign="top"><a id="ad9657df1445c0f2afaef0be018df9d9a"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; Eigen::Affine3f &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudState</b></td></tr>
<tr class="separator:ad9657df1445c0f2afaef0be018df9d9a inherit pub_types_classpcl_1_1tracking_1_1_tracker"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e62f3edfa5132eb130cd5ab99352a1a inherit pub_types_classpcl_1_1tracking_1_1_tracker"><td class="memItemLeft" align="right" valign="top"><a id="a2e62f3edfa5132eb130cd5ab99352a1a"></a>
typedef PointCloudState::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudStatePtr</b></td></tr>
<tr class="separator:a2e62f3edfa5132eb130cd5ab99352a1a inherit pub_types_classpcl_1_1tracking_1_1_tracker"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4eda4373f693f0d7160ace78522a729c inherit pub_types_classpcl_1_1tracking_1_1_tracker"><td class="memItemLeft" align="right" valign="top"><a id="a4eda4373f693f0d7160ace78522a729c"></a>
typedef PointCloudState::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudStateConstPtr</b></td></tr>
<tr class="separator:a4eda4373f693f0d7160ace78522a729c inherit pub_types_classpcl_1_1tracking_1_1_tracker"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classpcl_1_1_p_c_l_base"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classpcl_1_1_p_c_l_base')"><img src="closed.png" alt="-"/>&#160;Public 类型 继承自 <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase&lt; PointInT &gt;</a></td></tr>
<tr class="memitem:ae2f6f6863a73337858b7a7a054eaae4f inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ae2f6f6863a73337858b7a7a054eaae4f"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointInT &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloud</b></td></tr>
<tr class="separator:ae2f6f6863a73337858b7a7a054eaae4f inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab84dd662cda89edb882fe5307b2136ea inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ab84dd662cda89edb882fe5307b2136ea"></a>
typedef PointCloud::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudPtr</b></td></tr>
<tr class="separator:ab84dd662cda89edb882fe5307b2136ea inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8326513fad0680b6993e2f1a79a6af4 inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ac8326513fad0680b6993e2f1a79a6af4"></a>
typedef PointCloud::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudConstPtr</b></td></tr>
<tr class="separator:ac8326513fad0680b6993e2f1a79a6af4 inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae51eae0c7b3e0b7178f4894dff90660a inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ae51eae0c7b3e0b7178f4894dff90660a"></a>
typedef boost::shared_ptr&lt; <a class="el" href="structpcl_1_1_point_indices.html">PointIndices</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointIndicesPtr</b></td></tr>
<tr class="separator:ae51eae0c7b3e0b7178f4894dff90660a inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51771056fb4ab8c448a11157acbe2ee0 inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a51771056fb4ab8c448a11157acbe2ee0"></a>
typedef boost::shared_ptr&lt; <a class="el" href="structpcl_1_1_point_indices.html">PointIndices</a> const &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointIndicesConstPtr</b></td></tr>
<tr class="separator:a51771056fb4ab8c448a11157acbe2ee0 inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:a6f7e2789efeeadd76c5e1025862e34e5"><td class="memItemLeft" align="right" valign="top"><a id="a6f7e2789efeeadd76c5e1025862e34e5"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a6f7e2789efeeadd76c5e1025862e34e5">PyramidalKLTTracker</a> (int nb_levels=5, int tracking_window_width=7, int tracking_window_height=7)</td></tr>
<tr class="memdesc:a6f7e2789efeeadd76c5e1025862e34e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor <br /></td></tr>
<tr class="separator:a6f7e2789efeeadd76c5e1025862e34e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a425aa7759eb414f155a9eaf9f21ab7d7"><td class="memItemLeft" align="right" valign="top"><a id="a425aa7759eb414f155a9eaf9f21ab7d7"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a425aa7759eb414f155a9eaf9f21ab7d7">~PyramidalKLTTracker</a> ()</td></tr>
<tr class="memdesc:a425aa7759eb414f155a9eaf9f21ab7d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor <br /></td></tr>
<tr class="separator:a425aa7759eb414f155a9eaf9f21ab7d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a157d73fb7eac0161e9183616a45ed99c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a157d73fb7eac0161e9183616a45ed99c">setNumberOfPyramidLevels</a> (int levels)</td></tr>
<tr class="memdesc:a157d73fb7eac0161e9183616a45ed99c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the number of pyramid levels  <a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a157d73fb7eac0161e9183616a45ed99c">更多...</a><br /></td></tr>
<tr class="separator:a157d73fb7eac0161e9183616a45ed99c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1eb598d35b2134f593803d97263172f3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a1eb598d35b2134f593803d97263172f3">getNumberOfPyramidLevels</a> () const</td></tr>
<tr class="separator:a1eb598d35b2134f593803d97263172f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64dcc53c044c27861b5441b2f99d099f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a64dcc53c044c27861b5441b2f99d099f">setAccuracy</a> (float accuracy)</td></tr>
<tr class="separator:a64dcc53c044c27861b5441b2f99d099f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ed1edfc6d2f4834ac30b3a42f9e8cd1"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a0ed1edfc6d2f4834ac30b3a42f9e8cd1">getAccuracy</a> () const</td></tr>
<tr class="separator:a0ed1edfc6d2f4834ac30b3a42f9e8cd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68ddbe4094f0a5d94bde3cb912c8f0c7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a68ddbe4094f0a5d94bde3cb912c8f0c7">setEpsilon</a> (float epsilon)</td></tr>
<tr class="separator:a68ddbe4094f0a5d94bde3cb912c8f0c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06637cb498ff4377e0dbc53c1e78105c"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a06637cb498ff4377e0dbc53c1e78105c">getEpsilon</a> () const</td></tr>
<tr class="separator:a06637cb498ff4377e0dbc53c1e78105c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3c809675ea924f5a6a9167bbed8e0a5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#ae3c809675ea924f5a6a9167bbed8e0a5">setNumberOfKeypoints</a> (std::size_t number)</td></tr>
<tr class="memdesc:ae3c809675ea924f5a6a9167bbed8e0a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the maximum number of points to track. Only the first keypoints_nbr_ are used as points to track after sorting detected keypoints according to their response measure.  <a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#ae3c809675ea924f5a6a9167bbed8e0a5">更多...</a><br /></td></tr>
<tr class="separator:ae3c809675ea924f5a6a9167bbed8e0a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afef9543e6cbaa5245bd837a4366868c3"><td class="memItemLeft" align="right" valign="top">std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#afef9543e6cbaa5245bd837a4366868c3">getNumberOfKeypoints</a> ()</td></tr>
<tr class="separator:afef9543e6cbaa5245bd837a4366868c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90e1723b09ffd63f88972b892d7c509b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a90e1723b09ffd63f88972b892d7c509b">setTrackingWindowSize</a> (int width, int height)</td></tr>
<tr class="memdesc:a90e1723b09ffd63f88972b892d7c509b"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the tracking window size  <a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a90e1723b09ffd63f88972b892d7c509b">更多...</a><br /></td></tr>
<tr class="separator:a90e1723b09ffd63f88972b892d7c509b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfd704e6b78a0c616bdcd18374cbc12c"><td class="memItemLeft" align="right" valign="top"><a id="abfd704e6b78a0c616bdcd18374cbc12c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#abfd704e6b78a0c616bdcd18374cbc12c">setTrackingWindowWidth</a> (int width)</td></tr>
<tr class="memdesc:abfd704e6b78a0c616bdcd18374cbc12c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set tracking window width <br /></td></tr>
<tr class="separator:abfd704e6b78a0c616bdcd18374cbc12c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82dbfec83a2f31125255eba2dedfe5c9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a82dbfec83a2f31125255eba2dedfe5c9">getTrackingWindowWidth</a> ()</td></tr>
<tr class="separator:a82dbfec83a2f31125255eba2dedfe5c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d782182dcfba1d46a866269316b79a4"><td class="memItemLeft" align="right" valign="top"><a id="a9d782182dcfba1d46a866269316b79a4"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a9d782182dcfba1d46a866269316b79a4">setTrackingWindowHeight</a> (int height)</td></tr>
<tr class="memdesc:a9d782182dcfba1d46a866269316b79a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set tracking window height <br /></td></tr>
<tr class="separator:a9d782182dcfba1d46a866269316b79a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac93a627c1eed2685af0ae5c0941892a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#aac93a627c1eed2685af0ae5c0941892a">getTrackingWindowHeight</a> ()</td></tr>
<tr class="separator:aac93a627c1eed2685af0ae5c0941892a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62d2f8d0c8efbee3b166b9ab7bd1167e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a62d2f8d0c8efbee3b166b9ab7bd1167e">setNumberOfThreads</a> (unsigned int nr_threads=0)</td></tr>
<tr class="memdesc:a62d2f8d0c8efbee3b166b9ab7bd1167e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the scheduler and set the number of threads to use.  <a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a62d2f8d0c8efbee3b166b9ab7bd1167e">更多...</a><br /></td></tr>
<tr class="separator:a62d2f8d0c8efbee3b166b9ab7bd1167e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0460b03dcfc7a2937c46ca46c94d562"><td class="memItemLeft" align="right" valign="top"><a id="ad0460b03dcfc7a2937c46ca46c94d562"></a>
PointCloudInConstPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#ad0460b03dcfc7a2937c46ca46c94d562">getReferenceCloud</a> () const</td></tr>
<tr class="memdesc:ad0460b03dcfc7a2937c46ca46c94d562"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer of the cloud at t-1. <br /></td></tr>
<tr class="separator:ad0460b03dcfc7a2937c46ca46c94d562"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03167bf6b569e40b3c846b1e113b39f5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a03167bf6b569e40b3c846b1e113b39f5">setMaxIterationsNumber</a> (unsigned int max)</td></tr>
<tr class="memdesc:a03167bf6b569e40b3c846b1e113b39f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the maximum number of iterations in the Lucas Kanade loop.  <a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a03167bf6b569e40b3c846b1e113b39f5">更多...</a><br /></td></tr>
<tr class="separator:a03167bf6b569e40b3c846b1e113b39f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04af46fe581d00fbda8593ac379851ff"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a04af46fe581d00fbda8593ac379851ff">getMaxIterationsNumber</a> () const</td></tr>
<tr class="separator:a04af46fe581d00fbda8593ac379851ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a825ff7281312ad78b2a94bab22046a3e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a825ff7281312ad78b2a94bab22046a3e">setPointsToTrack</a> (const pcl::PointIndicesConstPtr &amp;points)</td></tr>
<tr class="memdesc:a825ff7281312ad78b2a94bab22046a3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to points to track.  <a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a825ff7281312ad78b2a94bab22046a3e">更多...</a><br /></td></tr>
<tr class="separator:a825ff7281312ad78b2a94bab22046a3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29e239fcf58bc8ff7120aa3e47f01ef6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a29e239fcf58bc8ff7120aa3e47f01ef6">setPointsToTrack</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_u_v.html">pcl::PointUV</a> &gt;::ConstPtr &amp;points)</td></tr>
<tr class="memdesc:a29e239fcf58bc8ff7120aa3e47f01ef6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to points to track.  <a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a29e239fcf58bc8ff7120aa3e47f01ef6">更多...</a><br /></td></tr>
<tr class="separator:a29e239fcf58bc8ff7120aa3e47f01ef6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6506c6e1ea932082c7f76c988afa85c1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_u_v.html">pcl::PointUV</a> &gt;::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a6506c6e1ea932082c7f76c988afa85c1">getTrackedPoints</a> () const</td></tr>
<tr class="separator:a6506c6e1ea932082c7f76c988afa85c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6b068b18f45c46ca91bd01a8d6818eb"><td class="memItemLeft" align="right" valign="top">pcl::PointIndicesConstPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#ac6b068b18f45c46ca91bd01a8d6818eb">getPointsToTrackStatus</a> () const</td></tr>
<tr class="separator:ac6b068b18f45c46ca91bd01a8d6818eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc4f01cbacb9750e1ec6bf06068f8534"><td class="memItemLeft" align="right" valign="top"><a id="afc4f01cbacb9750e1ec6bf06068f8534"></a>
Eigen::Affine3f&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#afc4f01cbacb9750e1ec6bf06068f8534">getResult</a> () const</td></tr>
<tr class="memdesc:afc4f01cbacb9750e1ec6bf06068f8534"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the computed transfromation from tracked points. <br /></td></tr>
<tr class="separator:afc4f01cbacb9750e1ec6bf06068f8534"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3707355d4aa473f3e2ccce1e9de11bfb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a3707355d4aa473f3e2ccce1e9de11bfb">getInitialized</a> () const</td></tr>
<tr class="separator:a3707355d4aa473f3e2ccce1e9de11bfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classpcl_1_1tracking_1_1_tracker"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classpcl_1_1tracking_1_1_tracker')"><img src="closed.png" alt="-"/>&#160;Public 成员函数 继承自 <a class="el" href="classpcl_1_1tracking_1_1_tracker.html">pcl::tracking::Tracker&lt; PointInT, Eigen::Affine3f &gt;</a></td></tr>
<tr class="memitem:ace76ac69bdb310e0f679a3d321456c71 inherit pub_methods_classpcl_1_1tracking_1_1_tracker"><td class="memItemLeft" align="right" valign="top"><a id="ace76ac69bdb310e0f679a3d321456c71"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_tracker.html#ace76ac69bdb310e0f679a3d321456c71">Tracker</a> ()</td></tr>
<tr class="memdesc:ace76ac69bdb310e0f679a3d321456c71 inherit pub_methods_classpcl_1_1tracking_1_1_tracker"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty constructor. <br /></td></tr>
<tr class="separator:ace76ac69bdb310e0f679a3d321456c71 inherit pub_methods_classpcl_1_1tracking_1_1_tracker"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33f13863f8b42e01886999134917779a inherit pub_methods_classpcl_1_1tracking_1_1_tracker"><td class="memItemLeft" align="right" valign="top"><a id="a33f13863f8b42e01886999134917779a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_tracker.html#a33f13863f8b42e01886999134917779a">compute</a> ()</td></tr>
<tr class="memdesc:a33f13863f8b42e01886999134917779a inherit pub_methods_classpcl_1_1tracking_1_1_tracker"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base method for tracking for all points given in &lt;setInputCloud (), setIndices ()&gt; using the indices in setIndices () <br /></td></tr>
<tr class="separator:a33f13863f8b42e01886999134917779a inherit pub_methods_classpcl_1_1tracking_1_1_tracker"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classpcl_1_1_p_c_l_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classpcl_1_1_p_c_l_base')"><img src="closed.png" alt="-"/>&#160;Public 成员函数 继承自 <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase&lt; PointInT &gt;</a></td></tr>
<tr class="memitem:af4fbc5eb005057f8a0fc6d60bde595df inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="af4fbc5eb005057f8a0fc6d60bde595df"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#af4fbc5eb005057f8a0fc6d60bde595df">PCLBase</a> ()</td></tr>
<tr class="memdesc:af4fbc5eb005057f8a0fc6d60bde595df inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty constructor. <br /></td></tr>
<tr class="separator:af4fbc5eb005057f8a0fc6d60bde595df inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a6dd7a91275d7737cf1b18005b47244 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a7a6dd7a91275d7737cf1b18005b47244"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a7a6dd7a91275d7737cf1b18005b47244">PCLBase</a> (const <a class="el" href="classpcl_1_1_p_c_l_base.html">PCLBase</a> &amp;base)</td></tr>
<tr class="memdesc:a7a6dd7a91275d7737cf1b18005b47244 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br /></td></tr>
<tr class="separator:a7a6dd7a91275d7737cf1b18005b47244 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5d6846e98e59c37dcc3dc9958d53966 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ad5d6846e98e59c37dcc3dc9958d53966"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#ad5d6846e98e59c37dcc3dc9958d53966">~PCLBase</a> ()</td></tr>
<tr class="memdesc:ad5d6846e98e59c37dcc3dc9958d53966 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:ad5d6846e98e59c37dcc3dc9958d53966 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1952d7101f3942bac3b69ed55c1ca7ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a1952d7101f3942bac3b69ed55c1ca7ea">setInputCloud</a> (const PointCloudConstPtr &amp;cloud)</td></tr>
<tr class="memdesc:a1952d7101f3942bac3b69ed55c1ca7ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the input dataset  <a href="classpcl_1_1_p_c_l_base.html#a1952d7101f3942bac3b69ed55c1ca7ea">更多...</a><br /></td></tr>
<tr class="separator:a1952d7101f3942bac3b69ed55c1ca7ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cd745c4f7a792212f4fc3720b9d46ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a8cd745c4f7a792212f4fc3720b9d46ea"></a>
PointCloudConstPtr const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a8cd745c4f7a792212f4fc3720b9d46ea">getInputCloud</a> () const</td></tr>
<tr class="memdesc:a8cd745c4f7a792212f4fc3720b9d46ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to the input point cloud dataset. <br /></td></tr>
<tr class="separator:a8cd745c4f7a792212f4fc3720b9d46ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab219359de6eb34c9d51e2e976dd1a0d1 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#ab219359de6eb34c9d51e2e976dd1a0d1">setIndices</a> (const IndicesPtr &amp;indices)</td></tr>
<tr class="memdesc:ab219359de6eb34c9d51e2e976dd1a0d1 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the vector of indices that represents the input data.  <a href="classpcl_1_1_p_c_l_base.html#ab219359de6eb34c9d51e2e976dd1a0d1">更多...</a><br /></td></tr>
<tr class="separator:ab219359de6eb34c9d51e2e976dd1a0d1 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a436c68c74b31e4dd00000adfbb11ca7c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a436c68c74b31e4dd00000adfbb11ca7c">setIndices</a> (const IndicesConstPtr &amp;indices)</td></tr>
<tr class="memdesc:a436c68c74b31e4dd00000adfbb11ca7c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the vector of indices that represents the input data.  <a href="classpcl_1_1_p_c_l_base.html#a436c68c74b31e4dd00000adfbb11ca7c">更多...</a><br /></td></tr>
<tr class="separator:a436c68c74b31e4dd00000adfbb11ca7c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9cc90d8364ce968566f75800d3773ca inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#af9cc90d8364ce968566f75800d3773ca">setIndices</a> (const PointIndicesConstPtr &amp;indices)</td></tr>
<tr class="memdesc:af9cc90d8364ce968566f75800d3773ca inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the vector of indices that represents the input data.  <a href="classpcl_1_1_p_c_l_base.html#af9cc90d8364ce968566f75800d3773ca">更多...</a><br /></td></tr>
<tr class="separator:af9cc90d8364ce968566f75800d3773ca inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a930c7a6375fdf65ff8cfdb4eb4a6d996 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a930c7a6375fdf65ff8cfdb4eb4a6d996">setIndices</a> (size_t row_start, size_t col_start, size_t nb_rows, size_t nb_cols)</td></tr>
<tr class="memdesc:a930c7a6375fdf65ff8cfdb4eb4a6d996 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the indices for the points laying within an interest region of the point cloud.  <a href="classpcl_1_1_p_c_l_base.html#a930c7a6375fdf65ff8cfdb4eb4a6d996">更多...</a><br /></td></tr>
<tr class="separator:a930c7a6375fdf65ff8cfdb4eb4a6d996 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a058753dd4de73d3d0062fe2e452fba3c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a058753dd4de73d3d0062fe2e452fba3c"></a>
IndicesPtr const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a058753dd4de73d3d0062fe2e452fba3c">getIndices</a> ()</td></tr>
<tr class="memdesc:a058753dd4de73d3d0062fe2e452fba3c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to the vector of indices used. <br /></td></tr>
<tr class="separator:a058753dd4de73d3d0062fe2e452fba3c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acae187b37230758959572ceb1e6e2045 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="acae187b37230758959572ceb1e6e2045"></a>
IndicesConstPtr const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#acae187b37230758959572ceb1e6e2045">getIndices</a> () const</td></tr>
<tr class="memdesc:acae187b37230758959572ceb1e6e2045 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to the vector of indices used. <br /></td></tr>
<tr class="separator:acae187b37230758959572ceb1e6e2045 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7335fedb0af0930b9d1dedcb54ba201 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">const PointInT &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#af7335fedb0af0930b9d1dedcb54ba201">operator[]</a> (size_t pos) const</td></tr>
<tr class="memdesc:af7335fedb0af0930b9d1dedcb54ba201 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Override PointCloud operator[] to shorten code  <a href="classpcl_1_1_p_c_l_base.html#af7335fedb0af0930b9d1dedcb54ba201">更多...</a><br /></td></tr>
<tr class="separator:af7335fedb0af0930b9d1dedcb54ba201 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected 成员函数</h2></td></tr>
<tr class="memitem:aaa669cfc2ebbb9778be5475d69c6efce"><td class="memItemLeft" align="right" valign="top"><a id="aaa669cfc2ebbb9778be5475d69c6efce"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#aaa669cfc2ebbb9778be5475d69c6efce">initCompute</a> ()</td></tr>
<tr class="memdesc:aaa669cfc2ebbb9778be5475d69c6efce"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method should get called before starting the actual computation. <br /></td></tr>
<tr class="separator:aaa669cfc2ebbb9778be5475d69c6efce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1291f82b866df89fd94b4e2bf5dbd386"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a1291f82b866df89fd94b4e2bf5dbd386">derivatives</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">FloatImage</a> &amp;src, <a class="el" href="classpcl_1_1_point_cloud.html">FloatImage</a> &amp;grad_x, <a class="el" href="classpcl_1_1_point_cloud.html">FloatImage</a> &amp;grad_y) const</td></tr>
<tr class="memdesc:a1291f82b866df89fd94b4e2bf5dbd386"><td class="mdescLeft">&#160;</td><td class="mdescRight">compute Scharr derivatives of a source cloud.  <a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a1291f82b866df89fd94b4e2bf5dbd386">更多...</a><br /></td></tr>
<tr class="separator:a1291f82b866df89fd94b4e2bf5dbd386"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99549bf819b6eae79b2c0fe98e524d1b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a99549bf819b6eae79b2c0fe98e524d1b">downsample</a> (const FloatImageConstPtr &amp;input, FloatImageConstPtr &amp;output) const</td></tr>
<tr class="memdesc:a99549bf819b6eae79b2c0fe98e524d1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">downsample input  <a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a99549bf819b6eae79b2c0fe98e524d1b">更多...</a><br /></td></tr>
<tr class="separator:a99549bf819b6eae79b2c0fe98e524d1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d346b3cc0ce8d73d018b97080576e58"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a6d346b3cc0ce8d73d018b97080576e58">downsample</a> (const FloatImageConstPtr &amp;input, FloatImageConstPtr &amp;output, FloatImageConstPtr &amp;output_grad_x, FloatImageConstPtr &amp;output_grad_y) const</td></tr>
<tr class="memdesc:a6d346b3cc0ce8d73d018b97080576e58"><td class="mdescLeft">&#160;</td><td class="mdescRight">downsample input and compute output gradients.  <a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a6d346b3cc0ce8d73d018b97080576e58">更多...</a><br /></td></tr>
<tr class="separator:a6d346b3cc0ce8d73d018b97080576e58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd0d46566a85573a1d467f86a145dea8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#afd0d46566a85573a1d467f86a145dea8">convolve</a> (const FloatImageConstPtr &amp;input, <a class="el" href="classpcl_1_1_point_cloud.html">FloatImage</a> &amp;output) const</td></tr>
<tr class="memdesc:afd0d46566a85573a1d467f86a145dea8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Separately convolve image with decomposable convolution kernel.  <a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#afd0d46566a85573a1d467f86a145dea8">更多...</a><br /></td></tr>
<tr class="separator:afd0d46566a85573a1d467f86a145dea8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af00aa146a5122444e596060a26fc1bc6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#af00aa146a5122444e596060a26fc1bc6">convolveCols</a> (const FloatImageConstPtr &amp;input, <a class="el" href="classpcl_1_1_point_cloud.html">FloatImage</a> &amp;output) const</td></tr>
<tr class="memdesc:af00aa146a5122444e596060a26fc1bc6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convolve image columns.  <a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#af00aa146a5122444e596060a26fc1bc6">更多...</a><br /></td></tr>
<tr class="separator:af00aa146a5122444e596060a26fc1bc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8d75914e16311af2381c23b1d81e04f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#ad8d75914e16311af2381c23b1d81e04f">convolveRows</a> (const FloatImageConstPtr &amp;input, <a class="el" href="classpcl_1_1_point_cloud.html">FloatImage</a> &amp;output) const</td></tr>
<tr class="memdesc:ad8d75914e16311af2381c23b1d81e04f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convolve image rows.  <a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#ad8d75914e16311af2381c23b1d81e04f">更多...</a><br /></td></tr>
<tr class="separator:ad8d75914e16311af2381c23b1d81e04f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f85940b6be97925fc57ee052dd8e158"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a9f85940b6be97925fc57ee052dd8e158">spatialGradient</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">FloatImage</a> &amp;img, const <a class="el" href="classpcl_1_1_point_cloud.html">FloatImage</a> &amp;grad_x, const <a class="el" href="classpcl_1_1_point_cloud.html">FloatImage</a> &amp;grad_y, const Eigen::Array2i &amp;location, const Eigen::Array4f &amp;weights, Eigen::ArrayXXf &amp;win, Eigen::ArrayXXf &amp;grad_x_win, Eigen::ArrayXXf &amp;grad_y_win, Eigen::Array3f &amp;covariance) const</td></tr>
<tr class="memdesc:a9f85940b6be97925fc57ee052dd8e158"><td class="mdescLeft">&#160;</td><td class="mdescRight">extract the patch from the previous image, previous image gradients surrounding pixel alocation while interpolating image and gradients data and compute covariation matrix of derivatives.  <a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a9f85940b6be97925fc57ee052dd8e158">更多...</a><br /></td></tr>
<tr class="separator:a9f85940b6be97925fc57ee052dd8e158"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ca3900df6b883042d58d75038a4ddbc"><td class="memItemLeft" align="right" valign="top"><a id="a0ca3900df6b883042d58d75038a4ddbc"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>mismatchVector</b> (const Eigen::ArrayXXf &amp;prev, const Eigen::ArrayXXf &amp;prev_grad_x, const Eigen::ArrayXXf &amp;prev_grad_y, const <a class="el" href="classpcl_1_1_point_cloud.html">FloatImage</a> &amp;next, const Eigen::Array2i &amp;location, const Eigen::Array4f &amp;weights, Eigen::Array2f &amp;b) const</td></tr>
<tr class="separator:a0ca3900df6b883042d58d75038a4ddbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9168e3b0b3758e1d39fbce80f512e03c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a9168e3b0b3758e1d39fbce80f512e03c">computePyramids</a> (const PointCloudInConstPtr &amp;input, std::vector&lt; FloatImageConstPtr &gt; &amp;pyramid, pcl::InterpolationType border_type) const</td></tr>
<tr class="memdesc:a9168e3b0b3758e1d39fbce80f512e03c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the pyramidal representation of an image.  <a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a9168e3b0b3758e1d39fbce80f512e03c">更多...</a><br /></td></tr>
<tr class="separator:a9168e3b0b3758e1d39fbce80f512e03c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e94ed5e077752d3f13d2a33e28d1a4a"><td class="memItemLeft" align="right" valign="top"><a id="a9e94ed5e077752d3f13d2a33e28d1a4a"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>track</b> (const PointCloudInConstPtr &amp;previous_input, const PointCloudInConstPtr &amp;current_input, const std::vector&lt; FloatImageConstPtr &gt; &amp;previous_pyramid, const std::vector&lt; FloatImageConstPtr &gt; &amp;current_pyramid, const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_u_v.html">pcl::PointUV</a> &gt;::ConstPtr &amp;previous_keypoints, <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_u_v.html">pcl::PointUV</a> &gt;::Ptr &amp;current_keypoints, std::vector&lt; int &gt; &amp;status, Eigen::Affine3f &amp;motion) const</td></tr>
<tr class="separator:a9e94ed5e077752d3f13d2a33e28d1a4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66cf5039c8b3b50823b4847e062ea317"><td class="memItemLeft" align="right" valign="top"><a id="a66cf5039c8b3b50823b4847e062ea317"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a66cf5039c8b3b50823b4847e062ea317">computeTracking</a> ()</td></tr>
<tr class="memdesc:a66cf5039c8b3b50823b4847e062ea317"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract tracking method. <br /></td></tr>
<tr class="separator:a66cf5039c8b3b50823b4847e062ea317"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classpcl_1_1tracking_1_1_tracker"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classpcl_1_1tracking_1_1_tracker')"><img src="closed.png" alt="-"/>&#160;Protected 成员函数 继承自 <a class="el" href="classpcl_1_1tracking_1_1_tracker.html">pcl::tracking::Tracker&lt; PointInT, Eigen::Affine3f &gt;</a></td></tr>
<tr class="memitem:a4c1fa53775fb65484611b33ce4773a2c inherit pro_methods_classpcl_1_1tracking_1_1_tracker"><td class="memItemLeft" align="right" valign="top"><a id="a4c1fa53775fb65484611b33ce4773a2c"></a>
const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_tracker.html#a4c1fa53775fb65484611b33ce4773a2c">getClassName</a> () const</td></tr>
<tr class="memdesc:a4c1fa53775fb65484611b33ce4773a2c inherit pro_methods_classpcl_1_1tracking_1_1_tracker"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a string representation of the name of this class. <br /></td></tr>
<tr class="separator:a4c1fa53775fb65484611b33ce4773a2c inherit pro_methods_classpcl_1_1tracking_1_1_tracker"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3dc29b3ec41eab5118f32f6e0d0a530d inherit pro_methods_classpcl_1_1tracking_1_1_tracker"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_tracker.html#a3dc29b3ec41eab5118f32f6e0d0a530d">setSearchMethod</a> (const SearchPtr &amp;search)</td></tr>
<tr class="memdesc:a3dc29b3ec41eab5118f32f6e0d0a530d inherit pro_methods_classpcl_1_1tracking_1_1_tracker"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. This is optional, if this is not set, it will only use the data in the input cloud to estimate the features. This is useful when you only need to compute the features for a downsampled cloud. <br  />
  <a href="classpcl_1_1tracking_1_1_tracker.html#a3dc29b3ec41eab5118f32f6e0d0a530d">更多...</a><br /></td></tr>
<tr class="separator:a3dc29b3ec41eab5118f32f6e0d0a530d inherit pro_methods_classpcl_1_1tracking_1_1_tracker"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b69894c55f2eb469ecefa0f94d9b10a inherit pro_methods_classpcl_1_1tracking_1_1_tracker"><td class="memItemLeft" align="right" valign="top"><a id="a7b69894c55f2eb469ecefa0f94d9b10a"></a>
SearchPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_tracker.html#a7b69894c55f2eb469ecefa0f94d9b10a">getSearchMethod</a> ()</td></tr>
<tr class="memdesc:a7b69894c55f2eb469ecefa0f94d9b10a inherit pro_methods_classpcl_1_1tracking_1_1_tracker"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to the point cloud dataset. <br /></td></tr>
<tr class="separator:a7b69894c55f2eb469ecefa0f94d9b10a inherit pro_methods_classpcl_1_1tracking_1_1_tracker"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classpcl_1_1_p_c_l_base"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classpcl_1_1_p_c_l_base')"><img src="closed.png" alt="-"/>&#160;Protected 成员函数 继承自 <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase&lt; PointInT &gt;</a></td></tr>
<tr class="memitem:acceb20854934f4cf77e266eb5a44d4f0 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#acceb20854934f4cf77e266eb5a44d4f0">initCompute</a> ()</td></tr>
<tr class="memdesc:acceb20854934f4cf77e266eb5a44d4f0 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method should get called before starting the actual computation.  <a href="classpcl_1_1_p_c_l_base.html#acceb20854934f4cf77e266eb5a44d4f0">更多...</a><br /></td></tr>
<tr class="separator:acceb20854934f4cf77e266eb5a44d4f0 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc426c4eebb94b7734d4fa556bff1420 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="afc426c4eebb94b7734d4fa556bff1420"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#afc426c4eebb94b7734d4fa556bff1420">deinitCompute</a> ()</td></tr>
<tr class="memdesc:afc426c4eebb94b7734d4fa556bff1420 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method should get called after finishing the actual computation. <br /></td></tr>
<tr class="separator:afc426c4eebb94b7734d4fa556bff1420 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected 属性</h2></td></tr>
<tr class="memitem:a5d459c85a97df059644a826290c959e9"><td class="memItemLeft" align="right" valign="top"><a id="a5d459c85a97df059644a826290c959e9"></a>
std::vector&lt; FloatImageConstPtr &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5d459c85a97df059644a826290c959e9">ref_pyramid_</a></td></tr>
<tr class="memdesc:a5d459c85a97df059644a826290c959e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">input pyranid at t-1 <br /></td></tr>
<tr class="separator:a5d459c85a97df059644a826290c959e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdbf86b279b7eea6b6bd61d1dbeb4795"><td class="memItemLeft" align="right" valign="top"><a id="afdbf86b279b7eea6b6bd61d1dbeb4795"></a>
PointCloudInConstPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#afdbf86b279b7eea6b6bd61d1dbeb4795">ref_</a></td></tr>
<tr class="memdesc:afdbf86b279b7eea6b6bd61d1dbeb4795"><td class="mdescLeft">&#160;</td><td class="mdescRight">point cloud at t-1 <br /></td></tr>
<tr class="separator:afdbf86b279b7eea6b6bd61d1dbeb4795"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5421324722282216177334d23adb93f4"><td class="memItemLeft" align="right" valign="top"><a id="a5421324722282216177334d23adb93f4"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5421324722282216177334d23adb93f4">nb_levels_</a></td></tr>
<tr class="memdesc:a5421324722282216177334d23adb93f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">number of pyramid levels <br /></td></tr>
<tr class="separator:a5421324722282216177334d23adb93f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff99e3ce9e53287e4d139a7e438f8c1f"><td class="memItemLeft" align="right" valign="top"><a id="aff99e3ce9e53287e4d139a7e438f8c1f"></a>
<a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_u_v.html">pcl::PointUV</a> &gt;::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#aff99e3ce9e53287e4d139a7e438f8c1f">keypoints_</a></td></tr>
<tr class="memdesc:aff99e3ce9e53287e4d139a7e438f8c1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">detected keypoints 2D coordinates <br /></td></tr>
<tr class="separator:aff99e3ce9e53287e4d139a7e438f8c1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a105002a257afbcb4c0e8fc378fe73155"><td class="memItemLeft" align="right" valign="top"><a id="a105002a257afbcb4c0e8fc378fe73155"></a>
pcl::PointIndicesPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a105002a257afbcb4c0e8fc378fe73155">keypoints_status_</a></td></tr>
<tr class="memdesc:a105002a257afbcb4c0e8fc378fe73155"><td class="mdescLeft">&#160;</td><td class="mdescRight">status of keypoints of t-1 at t <br /></td></tr>
<tr class="separator:a105002a257afbcb4c0e8fc378fe73155"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39345a55890862cd5e85e037bfa6de0d"><td class="memItemLeft" align="right" valign="top"><a id="a39345a55890862cd5e85e037bfa6de0d"></a>
std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a39345a55890862cd5e85e037bfa6de0d">keypoints_nbr_</a></td></tr>
<tr class="memdesc:a39345a55890862cd5e85e037bfa6de0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">number of points to detect <br /></td></tr>
<tr class="separator:a39345a55890862cd5e85e037bfa6de0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10c45e67c08299e009a626a8705f2bfa"><td class="memItemLeft" align="right" valign="top"><a id="a10c45e67c08299e009a626a8705f2bfa"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10c45e67c08299e009a626a8705f2bfa">track_width_</a></td></tr>
<tr class="memdesc:a10c45e67c08299e009a626a8705f2bfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">tracking width <br /></td></tr>
<tr class="separator:a10c45e67c08299e009a626a8705f2bfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3eb2c64bcfaa0189719c2e29c5bb69a4"><td class="memItemLeft" align="right" valign="top"><a id="a3eb2c64bcfaa0189719c2e29c5bb69a4"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a3eb2c64bcfaa0189719c2e29c5bb69a4">track_width_2_</a></td></tr>
<tr class="memdesc:a3eb2c64bcfaa0189719c2e29c5bb69a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">half of tracking window width <br /></td></tr>
<tr class="separator:a3eb2c64bcfaa0189719c2e29c5bb69a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5625d4bc6bdd33d9bf03ab9cb9e724e7"><td class="memItemLeft" align="right" valign="top"><a id="a5625d4bc6bdd33d9bf03ab9cb9e724e7"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5625d4bc6bdd33d9bf03ab9cb9e724e7">track_height_</a></td></tr>
<tr class="memdesc:a5625d4bc6bdd33d9bf03ab9cb9e724e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">tracking height <br /></td></tr>
<tr class="separator:a5625d4bc6bdd33d9bf03ab9cb9e724e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4728bd3a60efc0a7559e9f76d5cb976c"><td class="memItemLeft" align="right" valign="top"><a id="a4728bd3a60efc0a7559e9f76d5cb976c"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a4728bd3a60efc0a7559e9f76d5cb976c">track_height_2_</a></td></tr>
<tr class="memdesc:a4728bd3a60efc0a7559e9f76d5cb976c"><td class="mdescLeft">&#160;</td><td class="mdescRight">half of tracking window height <br /></td></tr>
<tr class="separator:a4728bd3a60efc0a7559e9f76d5cb976c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa2c686306516b0181854772032d496c"><td class="memItemLeft" align="right" valign="top"><a id="aaa2c686306516b0181854772032d496c"></a>
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#aaa2c686306516b0181854772032d496c">max_iterations_</a></td></tr>
<tr class="memdesc:aaa2c686306516b0181854772032d496c"><td class="mdescLeft">&#160;</td><td class="mdescRight">maximum number of iterations <br /></td></tr>
<tr class="separator:aaa2c686306516b0181854772032d496c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aada859c02149ccc171bffc2425017dad"><td class="memItemLeft" align="right" valign="top"><a id="aada859c02149ccc171bffc2425017dad"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#aada859c02149ccc171bffc2425017dad">accuracy_</a></td></tr>
<tr class="memdesc:aada859c02149ccc171bffc2425017dad"><td class="mdescLeft">&#160;</td><td class="mdescRight">accuracy criterion to stop iterating <br /></td></tr>
<tr class="separator:aada859c02149ccc171bffc2425017dad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46a66cb0ef54417144721c3282d71c7f"><td class="memItemLeft" align="right" valign="top"><a id="a46a66cb0ef54417144721c3282d71c7f"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>min_eigenvalue_threshold_</b></td></tr>
<tr class="separator:a46a66cb0ef54417144721c3282d71c7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c1cb7572b19a0edbb66b50e6ab30956"><td class="memItemLeft" align="right" valign="top"><a id="a7c1cb7572b19a0edbb66b50e6ab30956"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a7c1cb7572b19a0edbb66b50e6ab30956">epsilon_</a></td></tr>
<tr class="memdesc:a7c1cb7572b19a0edbb66b50e6ab30956"><td class="mdescLeft">&#160;</td><td class="mdescRight">epsilon for subpixel computation <br /></td></tr>
<tr class="separator:a7c1cb7572b19a0edbb66b50e6ab30956"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a14e6e52ed653a111ee602330437945"><td class="memItemLeft" align="right" valign="top"><a id="a6a14e6e52ed653a111ee602330437945"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>max_residue_</b></td></tr>
<tr class="separator:a6a14e6e52ed653a111ee602330437945"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca8f4cfc01035b62b9e65a51b1a7e2f6"><td class="memItemLeft" align="right" valign="top"><a id="aca8f4cfc01035b62b9e65a51b1a7e2f6"></a>
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#aca8f4cfc01035b62b9e65a51b1a7e2f6">threads_</a></td></tr>
<tr class="memdesc:aca8f4cfc01035b62b9e65a51b1a7e2f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">number of hardware threads <br /></td></tr>
<tr class="separator:aca8f4cfc01035b62b9e65a51b1a7e2f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81d0a12e407b621b2cb0da45f5d22d77"><td class="memItemLeft" align="right" valign="top"><a id="a81d0a12e407b621b2cb0da45f5d22d77"></a>
IntensityT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a81d0a12e407b621b2cb0da45f5d22d77">intensity_</a></td></tr>
<tr class="memdesc:a81d0a12e407b621b2cb0da45f5d22d77"><td class="mdescLeft">&#160;</td><td class="mdescRight">intensity accessor <br /></td></tr>
<tr class="separator:a81d0a12e407b621b2cb0da45f5d22d77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88dc4e774d1c73233e935d4a34a46bca"><td class="memItemLeft" align="right" valign="top"><a id="a88dc4e774d1c73233e935d4a34a46bca"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a88dc4e774d1c73233e935d4a34a46bca">initialized_</a></td></tr>
<tr class="memdesc:a88dc4e774d1c73233e935d4a34a46bca"><td class="mdescLeft">&#160;</td><td class="mdescRight">is the tracker initialized ? <br /></td></tr>
<tr class="separator:a88dc4e774d1c73233e935d4a34a46bca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3763f66911a0a3b061aab1403dc70a5"><td class="memItemLeft" align="right" valign="top"><a id="ae3763f66911a0a3b061aab1403dc70a5"></a>
<a class="el" href="classpcl_1_1_transformation_from_correspondences.html">pcl::TransformationFromCorrespondences</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#ae3763f66911a0a3b061aab1403dc70a5">transformation_computer_</a></td></tr>
<tr class="memdesc:ae3763f66911a0a3b061aab1403dc70a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">compute transformation from successfully tracked points <br /></td></tr>
<tr class="separator:ae3763f66911a0a3b061aab1403dc70a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ae04755e3d16163e1502ae7c23a703f"><td class="memItemLeft" align="right" valign="top"><a id="a6ae04755e3d16163e1502ae7c23a703f"></a>
Eigen::Affine3f&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a6ae04755e3d16163e1502ae7c23a703f">motion_</a></td></tr>
<tr class="memdesc:a6ae04755e3d16163e1502ae7c23a703f"><td class="mdescLeft">&#160;</td><td class="mdescRight">computed transformation between tracked points <br /></td></tr>
<tr class="separator:a6ae04755e3d16163e1502ae7c23a703f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9c1a5b03eec314beff8a64340735a9b"><td class="memItemLeft" align="right" valign="top"><a id="aa9c1a5b03eec314beff8a64340735a9b"></a>
Eigen::Array&lt; float, 5, 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#aa9c1a5b03eec314beff8a64340735a9b">kernel_</a></td></tr>
<tr class="memdesc:aa9c1a5b03eec314beff8a64340735a9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">smoothing kernel <br /></td></tr>
<tr class="separator:aa9c1a5b03eec314beff8a64340735a9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52ea392e8a3f85b0313017f73fea7630"><td class="memItemLeft" align="right" valign="top"><a id="a52ea392e8a3f85b0313017f73fea7630"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a52ea392e8a3f85b0313017f73fea7630">kernel_size_2_</a></td></tr>
<tr class="memdesc:a52ea392e8a3f85b0313017f73fea7630"><td class="mdescLeft">&#160;</td><td class="mdescRight">smoothing kernel half size <br /></td></tr>
<tr class="separator:a52ea392e8a3f85b0313017f73fea7630"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10af9d16b10416c5a0b81e1ba8dbc225"><td class="memItemLeft" align="right" valign="top"><a id="a10af9d16b10416c5a0b81e1ba8dbc225"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10af9d16b10416c5a0b81e1ba8dbc225">kernel_last_</a></td></tr>
<tr class="memdesc:a10af9d16b10416c5a0b81e1ba8dbc225"><td class="mdescLeft">&#160;</td><td class="mdescRight">index of last element in kernel <br /></td></tr>
<tr class="separator:a10af9d16b10416c5a0b81e1ba8dbc225"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classpcl_1_1tracking_1_1_tracker"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classpcl_1_1tracking_1_1_tracker')"><img src="closed.png" alt="-"/>&#160;Protected 属性 继承自 <a class="el" href="classpcl_1_1tracking_1_1_tracker.html">pcl::tracking::Tracker&lt; PointInT, Eigen::Affine3f &gt;</a></td></tr>
<tr class="memitem:aaa1a7a91f381d951cc85c0c7f440f0ce inherit pro_attribs_classpcl_1_1tracking_1_1_tracker"><td class="memItemLeft" align="right" valign="top"><a id="aaa1a7a91f381d951cc85c0c7f440f0ce"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_tracker.html#aaa1a7a91f381d951cc85c0c7f440f0ce">tracker_name_</a></td></tr>
<tr class="memdesc:aaa1a7a91f381d951cc85c0c7f440f0ce inherit pro_attribs_classpcl_1_1tracking_1_1_tracker"><td class="mdescLeft">&#160;</td><td class="mdescRight">The tracker name. <br /></td></tr>
<tr class="separator:aaa1a7a91f381d951cc85c0c7f440f0ce inherit pro_attribs_classpcl_1_1tracking_1_1_tracker"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c1c4fc6bf4d4e3612019ed0a6c6968c inherit pro_attribs_classpcl_1_1tracking_1_1_tracker"><td class="memItemLeft" align="right" valign="top"><a id="a3c1c4fc6bf4d4e3612019ed0a6c6968c"></a>
SearchPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1tracking_1_1_tracker.html#a3c1c4fc6bf4d4e3612019ed0a6c6968c">search_</a></td></tr>
<tr class="memdesc:a3c1c4fc6bf4d4e3612019ed0a6c6968c inherit pro_attribs_classpcl_1_1tracking_1_1_tracker"><td class="mdescLeft">&#160;</td><td class="mdescRight">A pointer to the spatial search object. <br /></td></tr>
<tr class="separator:a3c1c4fc6bf4d4e3612019ed0a6c6968c inherit pro_attribs_classpcl_1_1tracking_1_1_tracker"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classpcl_1_1_p_c_l_base"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classpcl_1_1_p_c_l_base')"><img src="closed.png" alt="-"/>&#160;Protected 属性 继承自 <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase&lt; PointInT &gt;</a></td></tr>
<tr class="memitem:a09c70d8e06e3fb4f07903fe6f8d67869 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a09c70d8e06e3fb4f07903fe6f8d67869"></a>
PointCloudConstPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a></td></tr>
<tr class="memdesc:a09c70d8e06e3fb4f07903fe6f8d67869 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">The input point cloud dataset. <br /></td></tr>
<tr class="separator:a09c70d8e06e3fb4f07903fe6f8d67869 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaee847c8a517ebf365bad2cb182a6626 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="aaee847c8a517ebf365bad2cb182a6626"></a>
IndicesPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#aaee847c8a517ebf365bad2cb182a6626">indices_</a></td></tr>
<tr class="memdesc:aaee847c8a517ebf365bad2cb182a6626 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">A pointer to the vector of point indices to use. <br /></td></tr>
<tr class="separator:aaee847c8a517ebf365bad2cb182a6626 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada1eadb824d34ca9206a86343d9760bb inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ada1eadb824d34ca9206a86343d9760bb"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#ada1eadb824d34ca9206a86343d9760bb">use_indices_</a></td></tr>
<tr class="memdesc:ada1eadb824d34ca9206a86343d9760bb inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to true if point indices are used. <br /></td></tr>
<tr class="separator:ada1eadb824d34ca9206a86343d9760bb inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adadb0299f144528020ed558af6879662 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="adadb0299f144528020ed558af6879662"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#adadb0299f144528020ed558af6879662">fake_indices_</a></td></tr>
<tr class="memdesc:adadb0299f144528020ed558af6879662 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. <br /></td></tr>
<tr class="separator:adadb0299f144528020ed558af6879662 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><h3>template&lt;typename PointInT, typename IntensityT = pcl::common::IntensityFieldAccessor&lt;PointInT&gt;&gt;<br />
class pcl::tracking::PyramidalKLTTracker&lt; PointInT, IntensityT &gt;</h3>

<p>Pyramidal Kanade Lucas Tomasi tracker. This is an implemntation of the Pyramidal Kanade Lucas Tomasi tracker that operates on organized 3D keypoints with color/intensity information (this is the default behaviour but you can alterate it by providing another operator as second template argument). It is an affine tracker that iteratively computes the optical flow to find the best guess for a point p at t given its location at t-1. User is advised to respect the Tomasi condition: the response computed is the maximum eigenvalue of the second moment matrix but no restrictin are applied to points to track so you can use a detector of your choice to indicate points to track.</p>
<dl class="section author"><dt>作者</dt><dd>Nizar Sallem </dd></dl>
</div><h2 class="groupheader">成员函数说明</h2>
<a id="a9168e3b0b3758e1d39fbce80f512e03c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9168e3b0b3758e1d39fbce80f512e03c">&#9670;&nbsp;</a></span>computePyramids()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::computePyramids </td>
          <td>(</td>
          <td class="paramtype">const PointCloudInConstPtr &amp;&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; FloatImageConstPtr &gt; &amp;&#160;</td>
          <td class="paramname"><em>pyramid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">pcl::InterpolationType&#160;</td>
          <td class="paramname"><em>border_type</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compute the pyramidal representation of an image. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">input</td><td>the input cloud </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">pyramid</td><td>computed pyramid levels along with their respective gradients </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">border_type</td><td></td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;{</div>
<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;  <span class="keywordtype">int</span> step = 3;</div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;  pyramid.resize (step * <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5421324722282216177334d23adb93f4">nb_levels_</a>);</div>
<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160; </div>
<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;  FloatImageConstPtr previous;</div>
<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;  FloatImagePtr tmp (<span class="keyword">new</span> FloatImage (input-&gt;width, input-&gt;height));</div>
<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;<span class="preprocessor">#ifdef _OPENMP</span></div>
<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;<span class="preprocessor">#pragma omp parallel for num_threads (threads_)</span></div>
<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; static_cast&lt;int&gt; (input-&gt;size ()); ++i)</div>
<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;    tmp-&gt;points[i] = <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a81d0a12e407b621b2cb0da45f5d22d77">intensity_</a> (input-&gt;points[i]);</div>
<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;  previous = tmp;</div>
<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160; </div>
<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;  FloatImagePtr img (<span class="keyword">new</span> FloatImage (previous-&gt;width + 2*<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10c45e67c08299e009a626a8705f2bfa">track_width_</a>,</div>
<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;                                     previous-&gt;height + 2*<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5625d4bc6bdd33d9bf03ab9cb9e724e7">track_height_</a>));</div>
<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160; </div>
<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;  <a class="code" href="group__common.html#gaa65b1c8d782e7b776ae682679d2d948f">pcl::copyPointCloud</a> (*tmp, *img, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5625d4bc6bdd33d9bf03ab9cb9e724e7">track_height_</a>, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5625d4bc6bdd33d9bf03ab9cb9e724e7">track_height_</a>, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10c45e67c08299e009a626a8705f2bfa">track_width_</a>, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10c45e67c08299e009a626a8705f2bfa">track_width_</a>,</div>
<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;                       border_type, 0.f);</div>
<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;  pyramid[0] = img;</div>
<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160; </div>
<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;  <span class="comment">// compute first level gradients</span></div>
<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;  FloatImagePtr g_x (<span class="keyword">new</span> FloatImage (input-&gt;width, input-&gt;height));</div>
<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;  FloatImagePtr g_y (<span class="keyword">new</span> FloatImage (input-&gt;width, input-&gt;height));</div>
<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;  <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a1291f82b866df89fd94b4e2bf5dbd386">derivatives</a> (*img, *g_x, *g_y);</div>
<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;  <span class="comment">// copy to bigger clouds</span></div>
<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;  FloatImagePtr grad_x (<span class="keyword">new</span> FloatImage (previous-&gt;width + 2*<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10c45e67c08299e009a626a8705f2bfa">track_width_</a>,</div>
<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;                                        previous-&gt;height + 2*<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5625d4bc6bdd33d9bf03ab9cb9e724e7">track_height_</a>));</div>
<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;  <a class="code" href="group__common.html#gaa65b1c8d782e7b776ae682679d2d948f">pcl::copyPointCloud</a> (*g_x, *grad_x, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5625d4bc6bdd33d9bf03ab9cb9e724e7">track_height_</a>, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5625d4bc6bdd33d9bf03ab9cb9e724e7">track_height_</a>, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10c45e67c08299e009a626a8705f2bfa">track_width_</a>, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10c45e67c08299e009a626a8705f2bfa">track_width_</a>,</div>
<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;                       pcl::BORDER_CONSTANT, 0.f);</div>
<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;  pyramid[1] = grad_x;</div>
<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160; </div>
<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;  FloatImagePtr grad_y (<span class="keyword">new</span> FloatImage (previous-&gt;width + 2*<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10c45e67c08299e009a626a8705f2bfa">track_width_</a>,</div>
<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;                                        previous-&gt;height + 2*<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5625d4bc6bdd33d9bf03ab9cb9e724e7">track_height_</a>));</div>
<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;  <a class="code" href="group__common.html#gaa65b1c8d782e7b776ae682679d2d948f">pcl::copyPointCloud</a> (*g_y, *grad_y, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5625d4bc6bdd33d9bf03ab9cb9e724e7">track_height_</a>, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5625d4bc6bdd33d9bf03ab9cb9e724e7">track_height_</a>, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10c45e67c08299e009a626a8705f2bfa">track_width_</a>, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10c45e67c08299e009a626a8705f2bfa">track_width_</a>,</div>
<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;                       pcl::BORDER_CONSTANT, 0.f);</div>
<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;  pyramid[2] = grad_y;</div>
<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160; </div>
<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> level = 1; level &lt; <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5421324722282216177334d23adb93f4">nb_levels_</a>; ++level)</div>
<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;  {</div>
<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    <span class="comment">// compute current level and current level gradients</span></div>
<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;    FloatImageConstPtr current;</div>
<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;    FloatImageConstPtr g_x;</div>
<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;    FloatImageConstPtr g_y;</div>
<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;    <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a99549bf819b6eae79b2c0fe98e524d1b">downsample</a> (previous, current, g_x, g_y);</div>
<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;    <span class="comment">// copy to bigger clouds</span></div>
<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;    FloatImagePtr image (<span class="keyword">new</span> FloatImage (current-&gt;width + 2*<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10c45e67c08299e009a626a8705f2bfa">track_width_</a>,</div>
<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;                                         current-&gt;height + 2*<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5625d4bc6bdd33d9bf03ab9cb9e724e7">track_height_</a>));</div>
<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;    <a class="code" href="group__common.html#gaa65b1c8d782e7b776ae682679d2d948f">pcl::copyPointCloud</a> (*current, *image, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5625d4bc6bdd33d9bf03ab9cb9e724e7">track_height_</a>, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5625d4bc6bdd33d9bf03ab9cb9e724e7">track_height_</a>, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10c45e67c08299e009a626a8705f2bfa">track_width_</a>, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10c45e67c08299e009a626a8705f2bfa">track_width_</a>,</div>
<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;                         border_type, 0.f);</div>
<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;    pyramid[level*step] = image;</div>
<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;    FloatImagePtr gradx (<span class="keyword">new</span> FloatImage (g_x-&gt;width + 2*<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10c45e67c08299e009a626a8705f2bfa">track_width_</a>, g_x-&gt;height + 2*<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5625d4bc6bdd33d9bf03ab9cb9e724e7">track_height_</a>));</div>
<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    <a class="code" href="group__common.html#gaa65b1c8d782e7b776ae682679d2d948f">pcl::copyPointCloud</a> (*g_x, *gradx, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5625d4bc6bdd33d9bf03ab9cb9e724e7">track_height_</a>, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5625d4bc6bdd33d9bf03ab9cb9e724e7">track_height_</a>, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10c45e67c08299e009a626a8705f2bfa">track_width_</a>, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10c45e67c08299e009a626a8705f2bfa">track_width_</a>,</div>
<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;                         pcl::BORDER_CONSTANT, 0.f);</div>
<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;    pyramid[level*step + 1] = gradx;</div>
<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;    FloatImagePtr grady (<span class="keyword">new</span> FloatImage (g_y-&gt;width + 2*<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10c45e67c08299e009a626a8705f2bfa">track_width_</a>, g_y-&gt;height + 2*<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5625d4bc6bdd33d9bf03ab9cb9e724e7">track_height_</a>));</div>
<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;    <a class="code" href="group__common.html#gaa65b1c8d782e7b776ae682679d2d948f">pcl::copyPointCloud</a> (*g_y, *grady, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5625d4bc6bdd33d9bf03ab9cb9e724e7">track_height_</a>, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5625d4bc6bdd33d9bf03ab9cb9e724e7">track_height_</a>, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10c45e67c08299e009a626a8705f2bfa">track_width_</a>, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10c45e67c08299e009a626a8705f2bfa">track_width_</a>,</div>
<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;                         pcl::BORDER_CONSTANT, 0.f);</div>
<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;    pyramid[level*step + 2] = grady;</div>
<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;    <span class="comment">// set the new level</span></div>
<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;    previous = current;</div>
<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;  }</div>
<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1tracking_1_1_pyramidal_k_l_t_tracker_html_a10c45e67c08299e009a626a8705f2bfa"><div class="ttname"><a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10c45e67c08299e009a626a8705f2bfa">pcl::tracking::PyramidalKLTTracker::track_width_</a></div><div class="ttdeci">int track_width_</div><div class="ttdoc">tracking width</div><div class="ttdef"><b>Definition:</b> pyramidal_klt.h:339</div></div>
<div class="ttc" id="aclasspcl_1_1tracking_1_1_pyramidal_k_l_t_tracker_html_a1291f82b866df89fd94b4e2bf5dbd386"><div class="ttname"><a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a1291f82b866df89fd94b4e2bf5dbd386">pcl::tracking::PyramidalKLTTracker::derivatives</a></div><div class="ttdeci">void derivatives(const FloatImage &amp;src, FloatImage &amp;grad_x, FloatImage &amp;grad_y) const</div><div class="ttdoc">compute Scharr derivatives of a source cloud.</div><div class="ttdef"><b>Definition:</b> pyramidal_klt.hpp:166</div></div>
<div class="ttc" id="aclasspcl_1_1tracking_1_1_pyramidal_k_l_t_tracker_html_a5421324722282216177334d23adb93f4"><div class="ttname"><a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5421324722282216177334d23adb93f4">pcl::tracking::PyramidalKLTTracker::nb_levels_</a></div><div class="ttdeci">int nb_levels_</div><div class="ttdoc">number of pyramid levels</div><div class="ttdef"><b>Definition:</b> pyramidal_klt.h:331</div></div>
<div class="ttc" id="aclasspcl_1_1tracking_1_1_pyramidal_k_l_t_tracker_html_a5625d4bc6bdd33d9bf03ab9cb9e724e7"><div class="ttname"><a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5625d4bc6bdd33d9bf03ab9cb9e724e7">pcl::tracking::PyramidalKLTTracker::track_height_</a></div><div class="ttdeci">int track_height_</div><div class="ttdoc">tracking height</div><div class="ttdef"><b>Definition:</b> pyramidal_klt.h:343</div></div>
<div class="ttc" id="aclasspcl_1_1tracking_1_1_pyramidal_k_l_t_tracker_html_a81d0a12e407b621b2cb0da45f5d22d77"><div class="ttname"><a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a81d0a12e407b621b2cb0da45f5d22d77">pcl::tracking::PyramidalKLTTracker::intensity_</a></div><div class="ttdeci">IntensityT intensity_</div><div class="ttdoc">intensity accessor</div><div class="ttdef"><b>Definition:</b> pyramidal_klt.h:357</div></div>
<div class="ttc" id="aclasspcl_1_1tracking_1_1_pyramidal_k_l_t_tracker_html_a99549bf819b6eae79b2c0fe98e524d1b"><div class="ttname"><a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a99549bf819b6eae79b2c0fe98e524d1b">pcl::tracking::PyramidalKLTTracker::downsample</a></div><div class="ttdeci">void downsample(const FloatImageConstPtr &amp;input, FloatImageConstPtr &amp;output) const</div><div class="ttdoc">downsample input</div><div class="ttdef"><b>Definition:</b> pyramidal_klt.hpp:221</div></div>
<div class="ttc" id="agroup__common_html_gaa65b1c8d782e7b776ae682679d2d948f"><div class="ttname"><a href="group__common.html#gaa65b1c8d782e7b776ae682679d2d948f">pcl::copyPointCloud</a></div><div class="ttdeci">PCL_EXPORTS void copyPointCloud(const pcl::PCLPointCloud2 &amp;cloud_in, const std::vector&lt; int &gt; &amp;indices, pcl::PCLPointCloud2 &amp;cloud_out)</div><div class="ttdoc">Extract the indices of a given point cloud as a new point cloud</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="afd0d46566a85573a1d467f86a145dea8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afd0d46566a85573a1d467f86a145dea8">&#9670;&nbsp;</a></span>convolve()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::convolve </td>
          <td>(</td>
          <td class="paramtype">const FloatImageConstPtr &amp;&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpcl_1_1_point_cloud.html">FloatImage</a> &amp;&#160;</td>
          <td class="paramname"><em>output</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Separately convolve image with decomposable convolution kernel. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">input</td><td>input the image to convolve </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">output</td><td>output the convolved image </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;{</div>
<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;  FloatImagePtr tmp (<span class="keyword">new</span> FloatImage (input-&gt;width, input-&gt;height));</div>
<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;  <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#ad8d75914e16311af2381c23b1d81e04f">convolveRows</a> (input, *tmp);</div>
<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;  <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#af00aa146a5122444e596060a26fc1bc6">convolveCols</a> (tmp, output);</div>
<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1tracking_1_1_pyramidal_k_l_t_tracker_html_ad8d75914e16311af2381c23b1d81e04f"><div class="ttname"><a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#ad8d75914e16311af2381c23b1d81e04f">pcl::tracking::PyramidalKLTTracker::convolveRows</a></div><div class="ttdeci">void convolveRows(const FloatImageConstPtr &amp;input, FloatImage &amp;output) const</div><div class="ttdoc">Convolve image rows.</div><div class="ttdef"><b>Definition:</b> pyramidal_klt.hpp:273</div></div>
<div class="ttc" id="aclasspcl_1_1tracking_1_1_pyramidal_k_l_t_tracker_html_af00aa146a5122444e596060a26fc1bc6"><div class="ttname"><a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#af00aa146a5122444e596060a26fc1bc6">pcl::tracking::PyramidalKLTTracker::convolveCols</a></div><div class="ttdeci">void convolveCols(const FloatImageConstPtr &amp;input, FloatImage &amp;output) const</div><div class="ttdoc">Convolve image columns.</div><div class="ttdef"><b>Definition:</b> pyramidal_klt.hpp:304</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="af00aa146a5122444e596060a26fc1bc6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af00aa146a5122444e596060a26fc1bc6">&#9670;&nbsp;</a></span>convolveCols()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::convolveCols </td>
          <td>(</td>
          <td class="paramtype">const FloatImageConstPtr &amp;&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpcl_1_1_point_cloud.html">FloatImage</a> &amp;&#160;</td>
          <td class="paramname"><em>output</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Convolve image columns. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">input</td><td>input the image to convolve </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">output</td><td>output the convolved image </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;{</div>
<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;  output = FloatImage (input-&gt;width, input-&gt;height);</div>
<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160; </div>
<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;  <span class="keywordtype">int</span> width = input-&gt;width;</div>
<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;  <span class="keywordtype">int</span> height = input-&gt;height;</div>
<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;  <span class="keywordtype">int</span> last = input-&gt;height - <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a52ea392e8a3f85b0313017f73fea7630">kernel_size_2_</a>;</div>
<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;  <span class="keywordtype">int</span> h = last -1;</div>
<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160; </div>
<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;<span class="preprocessor">#ifdef _OPENMP</span></div>
<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;<span class="preprocessor">#pragma omp parallel for shared (output) num_threads (threads_)</span></div>
<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; width; ++i)</div>
<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;  {</div>
<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a52ea392e8a3f85b0313017f73fea7630">kernel_size_2_</a>; j &lt; last; ++j)</div>
<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    {</div>
<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;      <span class="keywordtype">double</span> result = 0;</div>
<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;      <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k = <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10af9d16b10416c5a0b81e1ba8dbc225">kernel_last_</a>, l = j - <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a52ea392e8a3f85b0313017f73fea7630">kernel_size_2_</a>; k &gt; -1; --k, ++l)</div>
<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;        result += <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#aa9c1a5b03eec314beff8a64340735a9b">kernel_</a>[k] * (*input) (i,l);</div>
<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;      output (i,j) = <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (result);</div>
<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;    }</div>
<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160; </div>
<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = last; j &lt; height; ++j)</div>
<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;      output (i,j) = output (i,h);</div>
<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160; </div>
<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j &lt; <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a52ea392e8a3f85b0313017f73fea7630">kernel_size_2_</a>; ++j)</div>
<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;      output (i,j) = output (i, <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a52ea392e8a3f85b0313017f73fea7630">kernel_size_2_</a>);</div>
<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;  }</div>
<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1tracking_1_1_pyramidal_k_l_t_tracker_html_a10af9d16b10416c5a0b81e1ba8dbc225"><div class="ttname"><a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10af9d16b10416c5a0b81e1ba8dbc225">pcl::tracking::PyramidalKLTTracker::kernel_last_</a></div><div class="ttdeci">int kernel_last_</div><div class="ttdoc">index of last element in kernel</div><div class="ttdef"><b>Definition:</b> pyramidal_klt.h:369</div></div>
<div class="ttc" id="aclasspcl_1_1tracking_1_1_pyramidal_k_l_t_tracker_html_a52ea392e8a3f85b0313017f73fea7630"><div class="ttname"><a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a52ea392e8a3f85b0313017f73fea7630">pcl::tracking::PyramidalKLTTracker::kernel_size_2_</a></div><div class="ttdeci">int kernel_size_2_</div><div class="ttdoc">smoothing kernel half size</div><div class="ttdef"><b>Definition:</b> pyramidal_klt.h:367</div></div>
<div class="ttc" id="aclasspcl_1_1tracking_1_1_pyramidal_k_l_t_tracker_html_aa9c1a5b03eec314beff8a64340735a9b"><div class="ttname"><a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#aa9c1a5b03eec314beff8a64340735a9b">pcl::tracking::PyramidalKLTTracker::kernel_</a></div><div class="ttdeci">Eigen::Array&lt; float, 5, 1 &gt; kernel_</div><div class="ttdoc">smoothing kernel</div><div class="ttdef"><b>Definition:</b> pyramidal_klt.h:365</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ad8d75914e16311af2381c23b1d81e04f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad8d75914e16311af2381c23b1d81e04f">&#9670;&nbsp;</a></span>convolveRows()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::convolveRows </td>
          <td>(</td>
          <td class="paramtype">const FloatImageConstPtr &amp;&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpcl_1_1_point_cloud.html">FloatImage</a> &amp;&#160;</td>
          <td class="paramname"><em>output</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Convolve image rows. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">input</td><td>input the image to convolve </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">output</td><td>output the convolved image </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;{</div>
<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;  <span class="keywordtype">int</span> width = input-&gt;width;</div>
<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;  <span class="keywordtype">int</span> height = input-&gt;height;</div>
<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;  <span class="keywordtype">int</span> last = input-&gt;width - <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a52ea392e8a3f85b0313017f73fea7630">kernel_size_2_</a>;</div>
<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;  <span class="keywordtype">int</span> w = last - 1;</div>
<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160; </div>
<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;<span class="preprocessor">#ifdef _OPENMP</span></div>
<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;<span class="preprocessor">#pragma omp parallel for shared (output) num_threads (threads_)</span></div>
<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j &lt; height; ++j)</div>
<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;  {</div>
<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a52ea392e8a3f85b0313017f73fea7630">kernel_size_2_</a>; i &lt; last; ++i)</div>
<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;    {</div>
<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;      <span class="keywordtype">double</span> result = 0;</div>
<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;      <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k = <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10af9d16b10416c5a0b81e1ba8dbc225">kernel_last_</a>, l = i - <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a52ea392e8a3f85b0313017f73fea7630">kernel_size_2_</a>; k &gt; -1; --k, ++l)</div>
<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;        result+= <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#aa9c1a5b03eec314beff8a64340735a9b">kernel_</a>[k] * (*input) (l,j);</div>
<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160; </div>
<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;      output (i,j) = <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (result);</div>
<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    }</div>
<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160; </div>
<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = last; i &lt; width; ++i)</div>
<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;      output (i,j) = output (w, j);</div>
<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160; </div>
<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a52ea392e8a3f85b0313017f73fea7630">kernel_size_2_</a>; ++i)</div>
<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;      output (i,j) = output (<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a52ea392e8a3f85b0313017f73fea7630">kernel_size_2_</a>, j);</div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;  }</div>
<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a1291f82b866df89fd94b4e2bf5dbd386"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1291f82b866df89fd94b4e2bf5dbd386">&#9670;&nbsp;</a></span>derivatives()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::derivatives </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_point_cloud.html">FloatImage</a> &amp;&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpcl_1_1_point_cloud.html">FloatImage</a> &amp;&#160;</td>
          <td class="paramname"><em>grad_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpcl_1_1_point_cloud.html">FloatImage</a> &amp;&#160;</td>
          <td class="paramname"><em>grad_y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>compute Scharr derivatives of a source cloud. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>the image for which gradients are to be computed </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">grad_x</td><td>image gradient along X direction </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">grad_y</td><td>image gradient along Y direction </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;{</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;  <span class="comment">// std::cout &lt;&lt; &quot;&gt;&gt;&gt; derivatives&quot; &lt;&lt; std::endl;</span></div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="comment"></span>  <span class="comment">// Use Shcarr operator to compute derivatives.        //</span></div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;  <span class="comment">// Vertical kernel +3 +10 +3 = [1 0 -1]T * [3 10 3]   //</span></div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;  <span class="comment">//                  0   0  0                          //</span></div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;  <span class="comment">//                 -3 -10 -3                          //</span></div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;  <span class="comment">// Horizontal kernel  +3 0  -3 = [3 10 3]T * [1 0 -1] //</span></div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;  <span class="comment">//                   +10 0 -10                        //</span></div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;  <span class="comment">//                    +3 0  -3                        //</span></div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="comment"></span>  <span class="keywordflow">if</span> (grad_x.size () != src.size () || grad_x.width != src.width || grad_x.height != src.height)</div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    grad_x = FloatImage (src.width, src.height);</div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;  <span class="keywordflow">if</span> (grad_y.size () != src.size () || grad_y.width != src.width || grad_y.height != src.height)</div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;  grad_y = FloatImage (src.width, src.height);</div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160; </div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;  <span class="keywordtype">int</span> height = src.height, width = src.width;</div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;  <span class="keywordtype">float</span> *row0 = <span class="keyword">new</span> <span class="keywordtype">float</span> [src.width + 2];</div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;  <span class="keywordtype">float</span> *row1 = <span class="keyword">new</span> <span class="keywordtype">float</span> [src.width + 2];</div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;  <span class="keywordtype">float</span> *trow0 = row0; ++trow0;</div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;  <span class="keywordtype">float</span> *trow1 = row1; ++trow1;</div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">float</span>* src_ptr = &amp;(src.points[0]);</div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160; </div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> y = 0; y &lt; height; y++)</div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;  {</div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">float</span>* srow0 = src_ptr + (y &gt; 0 ? y-1 : height &gt; 1 ? 1 : 0) * width;</div>
<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">float</span>* srow1 = src_ptr + y * width;</div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">float</span>* srow2 = src_ptr + (y &lt; height-1 ? y+1 : height &gt; 1 ? height-2 : 0) * width;</div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <span class="keywordtype">float</span>* grad_x_row = &amp;(grad_x.points[y * width]);</div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    <span class="keywordtype">float</span>* grad_y_row = &amp;(grad_y.points[y * width]);</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160; </div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    <span class="comment">// do vertical convolution</span></div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x = 0; x &lt; width; x++)</div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    {</div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;      trow0[x] = (srow0[x] + srow2[x])*3 + srow1[x]*10;</div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;      trow1[x] = srow2[x] - srow0[x];</div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    }</div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160; </div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <span class="comment">// make border</span></div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    <span class="keywordtype">int</span> x0 = width &gt; 1 ? 1 : 0, x1 = width &gt; 1 ? width-2 : 0;</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    trow0[-1] = trow0[x0]; trow0[width] = trow0[x1];</div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    trow1[-1] = trow1[x0]; trow1[width] = trow1[x1];</div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160; </div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    <span class="comment">// do horizontal convolution and store results</span></div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x = 0; x &lt; width; x++)</div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    {</div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;      grad_x_row[x] = trow0[x+1] - trow0[x-1];</div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;      grad_y_row[x] = (trow1[x+1] + trow1[x-1])*3 + trow1[x]*10;</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    }</div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;  }</div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a99549bf819b6eae79b2c0fe98e524d1b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a99549bf819b6eae79b2c0fe98e524d1b">&#9670;&nbsp;</a></span>downsample() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::downsample </td>
          <td>(</td>
          <td class="paramtype">const FloatImageConstPtr &amp;&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FloatImageConstPtr &amp;&#160;</td>
          <td class="paramname"><em>output</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>downsample input </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">input</td><td>the image to downsample </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">output</td><td>the downsampled image </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;{</div>
<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;  FloatImage smoothed (input-&gt;width, input-&gt;height);</div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;  <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#afd0d46566a85573a1d467f86a145dea8">convolve</a> (input, smoothed);</div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160; </div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;  <span class="keywordtype">int</span> width = (smoothed.width +1) / 2;</div>
<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;  <span class="keywordtype">int</span> height = (smoothed.height +1) / 2;</div>
<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;  std::vector&lt;int&gt; ii (width);</div>
<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; width; ++i)</div>
<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    ii[i] = 2 * i;</div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160; </div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;  FloatImagePtr down (<span class="keyword">new</span> FloatImage (width, height));</div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;<span class="preprocessor">#ifdef _OPENMP</span></div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="preprocessor">#pragma omp parallel for shared (output) firstprivate (ii) num_threads (threads_)</span></div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j &lt; height; ++j)</div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;  {</div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    <span class="keywordtype">int</span> jj = 2*j;</div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; width; ++i)</div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;      (*down) (i,j) = smoothed (ii[i],jj);</div>
<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;  }</div>
<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160; </div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;  output = down;</div>
<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1tracking_1_1_pyramidal_k_l_t_tracker_html_afd0d46566a85573a1d467f86a145dea8"><div class="ttname"><a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#afd0d46566a85573a1d467f86a145dea8">pcl::tracking::PyramidalKLTTracker::convolve</a></div><div class="ttdeci">void convolve(const FloatImageConstPtr &amp;input, FloatImage &amp;output) const</div><div class="ttdoc">Separately convolve image with decomposable convolution kernel.</div><div class="ttdef"><b>Definition:</b> pyramidal_klt.hpp:264</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a6d346b3cc0ce8d73d018b97080576e58"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d346b3cc0ce8d73d018b97080576e58">&#9670;&nbsp;</a></span>downsample() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::downsample </td>
          <td>(</td>
          <td class="paramtype">const FloatImageConstPtr &amp;&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FloatImageConstPtr &amp;&#160;</td>
          <td class="paramname"><em>output</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FloatImageConstPtr &amp;&#160;</td>
          <td class="paramname"><em>output_grad_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FloatImageConstPtr &amp;&#160;</td>
          <td class="paramname"><em>output_grad_y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>downsample input and compute output gradients. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">input</td><td>the image to downsample </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">output</td><td>the downsampled image </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">output_grad_x</td><td>downsampled image gradient along X direction </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">output_grad_y</td><td>downsampled image gradient along Y direction </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;{</div>
<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;  <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a99549bf819b6eae79b2c0fe98e524d1b">downsample</a> (input, output);</div>
<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;  FloatImagePtr grad_x (<span class="keyword">new</span> FloatImage (input-&gt;width, input-&gt;height));</div>
<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;  FloatImagePtr grad_y (<span class="keyword">new</span> FloatImage (input-&gt;width, input-&gt;height));</div>
<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;  <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a1291f82b866df89fd94b4e2bf5dbd386">derivatives</a> (*output, *grad_x, *grad_y);</div>
<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;  output_grad_x = grad_x;</div>
<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;  output_grad_y = grad_y;</div>
<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a0ed1edfc6d2f4834ac30b3a42f9e8cd1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ed1edfc6d2f4834ac30b3a42f9e8cd1">&#9670;&nbsp;</a></span>getAccuracy()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT  = pcl::common::IntensityFieldAccessor&lt;PointInT&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::getAccuracy </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>返回</dt><dd>the accuracy </dd></dl>
<div class="fragment"><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;{ <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#aada859c02149ccc171bffc2425017dad">accuracy_</a>); }</div>
<div class="ttc" id="aclasspcl_1_1tracking_1_1_pyramidal_k_l_t_tracker_html_aada859c02149ccc171bffc2425017dad"><div class="ttname"><a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#aada859c02149ccc171bffc2425017dad">pcl::tracking::PyramidalKLTTracker::accuracy_</a></div><div class="ttdeci">float accuracy_</div><div class="ttdoc">accuracy criterion to stop iterating</div><div class="ttdef"><b>Definition:</b> pyramidal_klt.h:349</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a06637cb498ff4377e0dbc53c1e78105c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a06637cb498ff4377e0dbc53c1e78105c">&#9670;&nbsp;</a></span>getEpsilon()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT  = pcl::common::IntensityFieldAccessor&lt;PointInT&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::getEpsilon </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>返回</dt><dd>the epsilon </dd></dl>
<div class="fragment"><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;{ <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a7c1cb7572b19a0edbb66b50e6ab30956">epsilon_</a>); }</div>
<div class="ttc" id="aclasspcl_1_1tracking_1_1_pyramidal_k_l_t_tracker_html_a7c1cb7572b19a0edbb66b50e6ab30956"><div class="ttname"><a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a7c1cb7572b19a0edbb66b50e6ab30956">pcl::tracking::PyramidalKLTTracker::epsilon_</a></div><div class="ttdeci">float epsilon_</div><div class="ttdoc">epsilon for subpixel computation</div><div class="ttdef"><b>Definition:</b> pyramidal_klt.h:352</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a3707355d4aa473f3e2ccce1e9de11bfb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3707355d4aa473f3e2ccce1e9de11bfb">&#9670;&nbsp;</a></span>getInitialized()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT  = pcl::common::IntensityFieldAccessor&lt;PointInT&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::getInitialized </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>返回</dt><dd>initialization state </dd></dl>
<div class="fragment"><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;{ <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a88dc4e774d1c73233e935d4a34a46bca">initialized_</a>); }</div>
<div class="ttc" id="aclasspcl_1_1tracking_1_1_pyramidal_k_l_t_tracker_html_a88dc4e774d1c73233e935d4a34a46bca"><div class="ttname"><a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a88dc4e774d1c73233e935d4a34a46bca">pcl::tracking::PyramidalKLTTracker::initialized_</a></div><div class="ttdeci">bool initialized_</div><div class="ttdoc">is the tracker initialized ?</div><div class="ttdef"><b>Definition:</b> pyramidal_klt.h:359</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a04af46fe581d00fbda8593ac379851ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a04af46fe581d00fbda8593ac379851ff">&#9670;&nbsp;</a></span>getMaxIterationsNumber()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT  = pcl::common::IntensityFieldAccessor&lt;PointInT&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::getMaxIterationsNumber </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>返回</dt><dd>the maximum iterations number </dd></dl>
<div class="fragment"><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;{ <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#aaa2c686306516b0181854772032d496c">max_iterations_</a>); }</div>
<div class="ttc" id="aclasspcl_1_1tracking_1_1_pyramidal_k_l_t_tracker_html_aaa2c686306516b0181854772032d496c"><div class="ttname"><a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#aaa2c686306516b0181854772032d496c">pcl::tracking::PyramidalKLTTracker::max_iterations_</a></div><div class="ttdeci">unsigned int max_iterations_</div><div class="ttdoc">maximum number of iterations</div><div class="ttdef"><b>Definition:</b> pyramidal_klt.h:347</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="afef9543e6cbaa5245bd837a4366868c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afef9543e6cbaa5245bd837a4366868c3">&#9670;&nbsp;</a></span>getNumberOfKeypoints()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT  = pcl::common::IntensityFieldAccessor&lt;PointInT&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::size_t <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::getNumberOfKeypoints </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>返回</dt><dd>the maximum number of keypoints to keep </dd></dl>
<div class="fragment"><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;{ <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a39345a55890862cd5e85e037bfa6de0d">keypoints_nbr_</a>); }</div>
<div class="ttc" id="aclasspcl_1_1tracking_1_1_pyramidal_k_l_t_tracker_html_a39345a55890862cd5e85e037bfa6de0d"><div class="ttname"><a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a39345a55890862cd5e85e037bfa6de0d">pcl::tracking::PyramidalKLTTracker::keypoints_nbr_</a></div><div class="ttdeci">std::size_t keypoints_nbr_</div><div class="ttdoc">number of points to detect</div><div class="ttdef"><b>Definition:</b> pyramidal_klt.h:337</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a1eb598d35b2134f593803d97263172f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1eb598d35b2134f593803d97263172f3">&#9670;&nbsp;</a></span>getNumberOfPyramidLevels()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT  = pcl::common::IntensityFieldAccessor&lt;PointInT&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::getNumberOfPyramidLevels </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>返回</dt><dd>the number of pyramid levels </dd></dl>
<div class="fragment"><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;{ <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5421324722282216177334d23adb93f4">nb_levels_</a>); }</div>
</div><!-- fragment -->
</div>
</div>
<a id="ac6b068b18f45c46ca91bd01a8d6818eb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6b068b18f45c46ca91bd01a8d6818eb">&#9670;&nbsp;</a></span>getPointsToTrackStatus()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT  = pcl::common::IntensityFieldAccessor&lt;PointInT&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">pcl::PointIndicesConstPtr <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::getPointsToTrackStatus </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>返回</dt><dd>the status of points to track. Status == 0 --&gt; points succesfully tracked; Status &lt; 0 --&gt; point is lost; Status == -1 --&gt; point is out of bond; Status == -2 --&gt; optical flow can not be computed for this point. </dd></dl>
<div class="fragment"><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;{ <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a105002a257afbcb4c0e8fc378fe73155">keypoints_status_</a>); }</div>
<div class="ttc" id="aclasspcl_1_1tracking_1_1_pyramidal_k_l_t_tracker_html_a105002a257afbcb4c0e8fc378fe73155"><div class="ttname"><a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a105002a257afbcb4c0e8fc378fe73155">pcl::tracking::PyramidalKLTTracker::keypoints_status_</a></div><div class="ttdeci">pcl::PointIndicesPtr keypoints_status_</div><div class="ttdoc">status of keypoints of t-1 at t</div><div class="ttdef"><b>Definition:</b> pyramidal_klt.h:335</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a6506c6e1ea932082c7f76c988afa85c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6506c6e1ea932082c7f76c988afa85c1">&#9670;&nbsp;</a></span>getTrackedPoints()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT  = pcl::common::IntensityFieldAccessor&lt;PointInT&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt;<a class="el" href="structpcl_1_1_point_u_v.html">pcl::PointUV</a>&gt;::ConstPtr <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::getTrackedPoints </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>返回</dt><dd>a pointer to the points succesfully tracked. </dd></dl>
<div class="fragment"><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;{ <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#aff99e3ce9e53287e4d139a7e438f8c1f">keypoints_</a>); };</div>
<div class="ttc" id="aclasspcl_1_1tracking_1_1_pyramidal_k_l_t_tracker_html_aff99e3ce9e53287e4d139a7e438f8c1f"><div class="ttname"><a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#aff99e3ce9e53287e4d139a7e438f8c1f">pcl::tracking::PyramidalKLTTracker::keypoints_</a></div><div class="ttdeci">pcl::PointCloud&lt; pcl::PointUV &gt;::ConstPtr keypoints_</div><div class="ttdoc">detected keypoints 2D coordinates</div><div class="ttdef"><b>Definition:</b> pyramidal_klt.h:333</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="aac93a627c1eed2685af0ae5c0941892a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac93a627c1eed2685af0ae5c0941892a">&#9670;&nbsp;</a></span>getTrackingWindowHeight()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT  = pcl::common::IntensityFieldAccessor&lt;PointInT&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::getTrackingWindowHeight </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>返回</dt><dd>the tracking window size </dd></dl>
<div class="fragment"><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;{ <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5625d4bc6bdd33d9bf03ab9cb9e724e7">track_height_</a>); }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a82dbfec83a2f31125255eba2dedfe5c9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82dbfec83a2f31125255eba2dedfe5c9">&#9670;&nbsp;</a></span>getTrackingWindowWidth()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT  = pcl::common::IntensityFieldAccessor&lt;PointInT&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::getTrackingWindowWidth </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>返回</dt><dd>the tracking window size </dd></dl>
<div class="fragment"><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;{ <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10c45e67c08299e009a626a8705f2bfa">track_width_</a>); }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a64dcc53c044c27861b5441b2f99d099f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a64dcc53c044c27861b5441b2f99d099f">&#9670;&nbsp;</a></span>setAccuracy()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT  = pcl::common::IntensityFieldAccessor&lt;PointInT&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::setAccuracy </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>accuracy</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Set accuracy </p><dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">accuracy</td><td>desired accuracy. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;{ <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#aada859c02149ccc171bffc2425017dad">accuracy_</a> = accuracy; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a68ddbe4094f0a5d94bde3cb912c8f0c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68ddbe4094f0a5d94bde3cb912c8f0c7">&#9670;&nbsp;</a></span>setEpsilon()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT  = pcl::common::IntensityFieldAccessor&lt;PointInT&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::setEpsilon </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>epsilon</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Set epsilon </p><dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">epsilon</td><td>desired epsilon. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;{ <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a7c1cb7572b19a0edbb66b50e6ab30956">epsilon_</a> = epsilon; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a03167bf6b569e40b3c846b1e113b39f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a03167bf6b569e40b3c846b1e113b39f5">&#9670;&nbsp;</a></span>setMaxIterationsNumber()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT  = pcl::common::IntensityFieldAccessor&lt;PointInT&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::setMaxIterationsNumber </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>max</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the maximum number of iterations in the Lucas Kanade loop. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">max</td><td>the desired maximum number of iterations </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;{ <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#aaa2c686306516b0181854772032d496c">max_iterations_</a> = max; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="ae3c809675ea924f5a6a9167bbed8e0a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae3c809675ea924f5a6a9167bbed8e0a5">&#9670;&nbsp;</a></span>setNumberOfKeypoints()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT  = pcl::common::IntensityFieldAccessor&lt;PointInT&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::setNumberOfKeypoints </td>
          <td>(</td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>number</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the maximum number of points to track. Only the first keypoints_nbr_ are used as points to track after sorting detected keypoints according to their response measure. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">number</td><td>the desired number of points to detect. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;{ <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a39345a55890862cd5e85e037bfa6de0d">keypoints_nbr_</a> = number; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a157d73fb7eac0161e9183616a45ed99c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a157d73fb7eac0161e9183616a45ed99c">&#9670;&nbsp;</a></span>setNumberOfPyramidLevels()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT  = pcl::common::IntensityFieldAccessor&lt;PointInT&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::setNumberOfPyramidLevels </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>levels</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the number of pyramid levels </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">levels</td><td>desired number of pyramid levels </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;{ <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5421324722282216177334d23adb93f4">nb_levels_</a> = levels; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a62d2f8d0c8efbee3b166b9ab7bd1167e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62d2f8d0c8efbee3b166b9ab7bd1167e">&#9670;&nbsp;</a></span>setNumberOfThreads()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT  = pcl::common::IntensityFieldAccessor&lt;PointInT&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::setNumberOfThreads </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>nr_threads</em> = <code>0</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Initialize the scheduler and set the number of threads to use. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">nr_threads</td><td>the number of hardware threads to use (0 sets the value back to automatic). </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;{ <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#aca8f4cfc01035b62b9e65a51b1a7e2f6">threads_</a> = nr_threads; }</div>
<div class="ttc" id="aclasspcl_1_1tracking_1_1_pyramidal_k_l_t_tracker_html_aca8f4cfc01035b62b9e65a51b1a7e2f6"><div class="ttname"><a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#aca8f4cfc01035b62b9e65a51b1a7e2f6">pcl::tracking::PyramidalKLTTracker::threads_</a></div><div class="ttdeci">unsigned int threads_</div><div class="ttdoc">number of hardware threads</div><div class="ttdef"><b>Definition:</b> pyramidal_klt.h:355</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a29e239fcf58bc8ff7120aa3e47f01ef6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a29e239fcf58bc8ff7120aa3e47f01ef6">&#9670;&nbsp;</a></span>setPointsToTrack() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::setPointsToTrack </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_u_v.html">pcl::PointUV</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>points</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provide a pointer to points to track. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">points</td><td>the const boost shared pointer to a <a class="el" href="structpcl_1_1_point_indices.html">PointIndices</a> message </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;{</div>
<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;  <span class="keywordflow">if</span> (keypoints-&gt;size () &lt;= <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a39345a55890862cd5e85e037bfa6de0d">keypoints_nbr_</a>)</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#aff99e3ce9e53287e4d139a7e438f8c1f">keypoints_</a> = keypoints;</div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;  <span class="keywordflow">else</span></div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;  {</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    pcl::PointCloud&lt;pcl::PointUV&gt;::Ptr p (<span class="keyword">new</span> <a class="code" href="classpcl_1_1_point_cloud.html">pcl::PointCloud&lt;pcl::PointUV&gt;</a>);</div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    p-&gt;reserve (<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a39345a55890862cd5e85e037bfa6de0d">keypoints_nbr_</a>);</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="keywordflow">for</span> (std::size_t i = 0; i &lt; <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a39345a55890862cd5e85e037bfa6de0d">keypoints_nbr_</a>; ++i)</div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;      p-&gt;push_back (keypoints-&gt;points[i]);</div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#aff99e3ce9e53287e4d139a7e438f8c1f">keypoints_</a> = p;</div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;  }</div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160; </div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;  <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a105002a257afbcb4c0e8fc378fe73155">keypoints_status_</a>.reset (<span class="keyword">new</span> <a class="code" href="structpcl_1_1_point_indices.html">pcl::PointIndices</a>);</div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;  <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a105002a257afbcb4c0e8fc378fe73155">keypoints_status_</a>-&gt;indices.resize (<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#aff99e3ce9e53287e4d139a7e438f8c1f">keypoints_</a>-&gt;size (), 0);</div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_point_cloud_html"><div class="ttname"><a href="classpcl_1_1_point_cloud.html">pcl::PointCloud&lt; pcl::PointUV &gt;</a></div></div>
<div class="ttc" id="astructpcl_1_1_point_indices_html"><div class="ttname"><a href="structpcl_1_1_point_indices.html">pcl::PointIndices</a></div><div class="ttdef"><b>Definition:</b> PointIndices.h:13</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a825ff7281312ad78b2a94bab22046a3e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a825ff7281312ad78b2a94bab22046a3e">&#9670;&nbsp;</a></span>setPointsToTrack() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::setPointsToTrack </td>
          <td>(</td>
          <td class="paramtype">const pcl::PointIndicesConstPtr &amp;&#160;</td>
          <td class="paramname"><em>points</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provide a pointer to points to track. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">points</td><td>the const boost shared pointer to a <a class="el" href="structpcl_1_1_point_indices.html">PointIndices</a> message </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;{</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;  assert ((<a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a> || <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#afdbf86b279b7eea6b6bd61d1dbeb4795">ref_</a>) &amp;&amp; <span class="stringliteral">&quot;[pcl::tracking::PyramidalKLTTracker] CALL setInputCloud FIRST!&quot;</span>);</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160; </div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;  pcl::PointCloud&lt;pcl::PointUV&gt;::Ptr keypoints (<span class="keyword">new</span> <a class="code" href="classpcl_1_1_point_cloud.html">pcl::PointCloud&lt;pcl::PointUV&gt;</a>);</div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;  keypoints-&gt;reserve (<a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a39345a55890862cd5e85e037bfa6de0d">keypoints_nbr_</a>);</div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;  <span class="keywordflow">for</span> (std::size_t i = 0; i &lt; <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a39345a55890862cd5e85e037bfa6de0d">keypoints_nbr_</a>; ++i)</div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;  {</div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <a class="code" href="structpcl_1_1_point_u_v.html">pcl::PointUV</a> uv;</div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    uv.u = points-&gt;indices[i] % <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;width;</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    uv.v = points-&gt;indices[i] / <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;width;</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    keypoints-&gt;push_back (uv);</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;  }</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;  <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a825ff7281312ad78b2a94bab22046a3e">setPointsToTrack</a> (keypoints);</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_p_c_l_base_html_a09c70d8e06e3fb4f07903fe6f8d67869"><div class="ttname"><a href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">pcl::PCLBase&lt; PointInT &gt;::input_</a></div><div class="ttdeci">PointCloudConstPtr input_</div><div class="ttdoc">The input point cloud dataset.</div><div class="ttdef"><b>Definition:</b> pcl_base.h:150</div></div>
<div class="ttc" id="aclasspcl_1_1tracking_1_1_pyramidal_k_l_t_tracker_html_a825ff7281312ad78b2a94bab22046a3e"><div class="ttname"><a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a825ff7281312ad78b2a94bab22046a3e">pcl::tracking::PyramidalKLTTracker::setPointsToTrack</a></div><div class="ttdeci">void setPointsToTrack(const pcl::PointIndicesConstPtr &amp;points)</div><div class="ttdoc">Provide a pointer to points to track.</div><div class="ttdef"><b>Definition:</b> pyramidal_klt.hpp:76</div></div>
<div class="ttc" id="aclasspcl_1_1tracking_1_1_pyramidal_k_l_t_tracker_html_afdbf86b279b7eea6b6bd61d1dbeb4795"><div class="ttname"><a href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#afdbf86b279b7eea6b6bd61d1dbeb4795">pcl::tracking::PyramidalKLTTracker::ref_</a></div><div class="ttdeci">PointCloudInConstPtr ref_</div><div class="ttdoc">point cloud at t-1</div><div class="ttdef"><b>Definition:</b> pyramidal_klt.h:329</div></div>
<div class="ttc" id="astructpcl_1_1_point_u_v_html"><div class="ttname"><a href="structpcl_1_1_point_u_v.html">pcl::PointUV</a></div><div class="ttdoc">A 2D point structure representing pixel image coordinates.</div><div class="ttdef"><b>Definition:</b> point_types.hpp:733</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a90e1723b09ffd63f88972b892d7c509b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90e1723b09ffd63f88972b892d7c509b">&#9670;&nbsp;</a></span>setTrackingWindowSize()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::setTrackingWindowSize </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>height</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>set the tracking window size </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">width</td><td>the tracking window width </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">height</td><td>the tracking window height </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;{</div>
<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;  <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10c45e67c08299e009a626a8705f2bfa">track_width_</a> = width;</div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;  <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5625d4bc6bdd33d9bf03ab9cb9e724e7">track_height_</a> = height;</div>
<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a9f85940b6be97925fc57ee052dd8e158"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f85940b6be97925fc57ee052dd8e158">&#9670;&nbsp;</a></span>spatialGradient()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointInT , typename IntensityT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">pcl::tracking::PyramidalKLTTracker</a>&lt; PointInT, IntensityT &gt;::spatialGradient </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_point_cloud.html">FloatImage</a> &amp;&#160;</td>
          <td class="paramname"><em>img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_point_cloud.html">FloatImage</a> &amp;&#160;</td>
          <td class="paramname"><em>grad_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_point_cloud.html">FloatImage</a> &amp;&#160;</td>
          <td class="paramname"><em>grad_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Array2i &amp;&#160;</td>
          <td class="paramname"><em>location</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Array4f &amp;&#160;</td>
          <td class="paramname"><em>weights</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::ArrayXXf &amp;&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::ArrayXXf &amp;&#160;</td>
          <td class="paramname"><em>grad_x_win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::ArrayXXf &amp;&#160;</td>
          <td class="paramname"><em>grad_y_win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Array3f &amp;&#160;</td>
          <td class="paramname"><em>covariance</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>extract the patch from the previous image, previous image gradients surrounding pixel alocation while interpolating image and gradients data and compute covariation matrix of derivatives. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">img</td><td>original image </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">grad_x</td><td>original image gradient along X direction </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">grad_y</td><td>original image gradient along Y direction </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">location</td><td>pixel at the center of the patch </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">weights</td><td>bilinear interpolation weights at this location computed from subpixel location </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">win</td><td>patch with interpolated intensity values </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">grad_x_win</td><td>patch with interpolated gradient along X values </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">grad_y_win</td><td>patch with interpolated gradient along Y values </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">covariance</td><td>covariance matrix coefficents </td></tr>
  </table>
  </dd>
</dl>
<p>!! store those</p>
<div class="fragment"><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;{</div>
<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">int</span> step = img.width;</div>
<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;  covariance.setZero ();</div>
<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160; </div>
<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> y = 0; y &lt; <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a5625d4bc6bdd33d9bf03ab9cb9e724e7">track_height_</a>; y++)</div>
<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;  {</div>
<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">float</span>* img_ptr = &amp;(img.points[0]) + (y + location[1])*step + location[0];</div>
<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">float</span>* grad_x_ptr = &amp;(grad_x.points[0]) + (y + location[1])*step + location[0];</div>
<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">float</span>* grad_y_ptr = &amp;(grad_y.points[0]) + (y + location[1])*step + location[0];</div>
<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160; </div>
<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;    <span class="keywordtype">float</span>* win_ptr = win.data () + y*win.cols ();</div>
<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    <span class="keywordtype">float</span>* grad_x_win_ptr = grad_x_win.data () + y*grad_x_win.cols ();</div>
<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    <span class="keywordtype">float</span>* grad_y_win_ptr = grad_y_win.data () + y*grad_y_win.cols ();</div>
<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160; </div>
<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x =0; x &lt; <a class="code" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html#a10c45e67c08299e009a626a8705f2bfa">track_width_</a>; ++x, ++grad_x_ptr, ++grad_y_ptr)</div>
<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;    {</div>
<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;      *win_ptr++  = img_ptr[x]*weight[0] + img_ptr[x+1]*weight[1] + img_ptr[x+step]*weight[2] + img_ptr[x+step+1]*weight[3];</div>
<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;      <span class="keywordtype">float</span> ixval = grad_x_ptr[0]*weight[0] + grad_x_ptr[1]*weight[1] + grad_x_ptr[step]*weight[2] + grad_x_ptr[step+1]*weight[3];</div>
<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;      <span class="keywordtype">float</span> iyval = grad_y_ptr[0]*weight[0] + grad_y_ptr[1]*weight[1] + grad_y_ptr[step]*weight[2] + grad_y_ptr[step+1]*weight[3];</div>
<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;      *grad_x_win_ptr++ = ixval;</div>
<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;      *grad_y_win_ptr++ = iyval;</div>
<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;      <span class="comment">//covariance components</span></div>
<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;      covariance[0] += ixval*ixval;</div>
<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;      covariance[1] += ixval*iyval;</div>
<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;      covariance[2] += iyval*iyval;</div>
<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    }</div>
<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;  }</div>
<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>tracking/include/pcl/tracking/<a class="el" href="pyramidal__klt_8h_source.html">pyramidal_klt.h</a></li>
<li>tracking/include/pcl/tracking/impl/<a class="el" href="pyramidal__klt_8hpp_source.html">pyramidal_klt.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>pcl</b></li><li class="navelem"><b>tracking</b></li><li class="navelem"><a class="el" href="classpcl_1_1tracking_1_1_pyramidal_k_l_t_tracker.html">PyramidalKLTTracker</a></li>
    <li class="footer">制作者 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
